我试图获取与current_user关联的事务ID,但是rails会将此错误发送到
下面错误:
ActiveRecord :: RecordNotFound(无法找到id = 92的Transaction [在哪里"交易"。" user_id" = 24])
iv尝试使用where和just事务,并使用条件比较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
答案 0 :(得分:0)
正如评论build_user
中的许多人所指出的那样确实创建了一个新的用户实例(没有保存它)。此外,我认为build_user
不是类方法,而是实例方法。因此,Transaction.build_user应该提出未定义的方法'例外。此外,build_user返回一个User实例,因此,即使您的代码是@transaction = Transaction.new.build_user
,@ transnsaction也是新创建的User实例。
再一次,其他人已在评论中指出,您的交易不一定与current_user
相关联,您可以在同一会话期间的后续调用中将其取回,而不是假设如果您正确构建并保存了用户,则需要以“新用户”身份登录。为了。