簡體   English   中英

Rails在has_many關聯上找到對象ID

[英]Rails find object id on has_many association

我正在嘗試獲取與current_user關聯的交易ID,但Rails在下面將此錯誤提示

錯誤:

ActiveRecord :: RecordNotFound(找不到id = 92 [WHERE“ transactions”。“ user_id” = 24]的事務)

iv'e嘗試使用where和僅事務,並有條件地將transaction.user_id與current_user.id進行比較,但顯示錯誤!

有人對這種問題有任何暗示嗎?

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

正如許多評論中指出的那樣, build_user確實確實創建了一個新的User實例(不保存它)。 此外,我相信build_user不是類方法,而是實例方法。 因此,Transaction.build_user應該引發“未定義的方法”異常。 同樣,build_user返回一個User實例,因此即使您的代碼是@transaction = Transaction.new.build_user @transaction也是一個新創建的User實例。

再有,其他人已經在注釋中指出,您的事務不一定要與current_user關聯,以便您在同一會話的后續調用中以這種方式獲取它,而是假設您正確構建並保存了該用戶,才能以該“新用戶”身份登錄。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM