繁体   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