Rails在has_many association

时间:2017-03-19 03:50:18

标签: mysql ruby-on-rails ruby ruby-on-rails-3 activerecord

我试图获取与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

1 个答案:

答案 0 :(得分:0)

正如评论build_user中的许多人所指出的那样确实创建了一个新的用户实例(没有保存它)。此外,我认为build_user不是类方法,而是实例方法。因此,Transaction.build_user应该提出未定义的方法'例外。此外,build_user返回一个User实例,因此,即使您的代码是@transaction = Transaction.new.build_user,@ transnsaction也是新创建的User实例。

再一次,其他人已在评论中指出,您的交易不一定与current_user相关联,您可以在同一会话期间的后续调用中将其取回,而不是假设如果您正确构建并保存了用户,则需要以“新用户”身份登录。为了。