2017-03-19 2 views
0

has_many 협회 개체 ID를 찾을 수 트랜잭션과 조건부로 transaction.user_id를 current_user.id와 비교하지만 오류가 발생했습니다!레일 내가이 오류</p> <p>오류 아래 CURRENT_USER하지만 레일 shos와 관련된 트랜잭션 ID를 얻으려고

누군가 이런 종류의 문제에 대해 어떤 힌트를 가지고 있습니까? 실제로 (저장하지 않고) 새로운 사용자 인스턴스를 생성 않는 의견 build_user에서 지적

model user 

user has_many transactions 

model transaction 

transaction belongs to user 


transaction controller 

def new 
@transaction = Transaction.new 
end 

def create 

@transaction = Transaction.build_user 

end 



def show 

@transaction = current_user.transactions.find(params[:id]) 

end 
+0

붙여 넣기 했습니까? 그렇다면 : 거래 모델에 유형 오류가 있음을 인식합니까? "trasaction"이 사용자에게 속한 것이 아니라 "transaction"입니다. 거기에 "n"이 없습니다. –

+0

어쨌든 고마워요. – nakapaka1

+0

'92'라는'Transaction '에는'user_id'가 없습니다. 콘솔에'rails c '라고 입력하여 확인하십시오. 그런 다음 id가 '92'인'Transaction'을 찾고, 'user_id'가 포함되어 있는지 확인하십시오 – Emu

답변

0

으로 많은. 또한 나는 build_user이 클래스 메소드가 아니라 인스턴스 메소드라고 믿습니다. 따라서 Transaction.build_user가 '정의되지 않은 메소드'예외를 발생시켜야합니다. 또한 build_user는 User 인스턴스를 반환하므로 코드가 @transaction = Transaction.new.build_user 인 경우에도 @transaction은 새로 생성 된 User 인스턴스가됩니다.

또 다른 사람들이 이미 의견에서 지적한 바에 따르면 동일한 세션에서 후속 호출에서이를 가져오고 적절하게 작성 및 저장했다고 가정 할 때 트랜잭션이 반드시 current_user과 연결되지는 않습니다. 사용자는이 '새 사용자'로 로그인해야합니다.