gpt4 book ai didi

mysql - Rails 在 has_many 关联上查找对象 ID

转载 作者:行者123 更新时间:2023-11-29 19:13:40 26 4
gpt4 key购买 nike

我正在尝试获取与 current_user 关联的事务 ID,但 Rails 在下面显示了此错误

错误:

ActiveRecord::RecordNotFound (Couldn't find Transaction with 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 关联,以便您在同一 session 期间的后续调用中像这样获取它,而是,并且假设您正确构建并保存了用户,您需要以该“新用户”身份登录。

关于mysql - Rails 在 has_many 关联上查找对象 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42882727/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com