[英]Rails quickly find record where has_many associations exactly match array of association ids
[英]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.