【发布时间】:2017-03-19 03:50:18
【问题描述】:
我正在尝试获取与 current_user 关联的事务 ID,但 rails 在下面显示此错误
错误:
ActiveRecord::RecordNotFound(找不到 id=92 的事务 [WHERE "交易"."user_id" = 24])
我尝试使用 where 和 just the transaction,并有条件地将 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
【问题讨论】:
-
你复制粘贴了吗?如果是这样:您确实认识到您的事务模型中存在类型错误?属于用户的不是“交易”而是“交易”。那里缺少一个“n”。
-
在您的
Transaction中,ID 为92,没有user_id。检查使用您的控制台输入rails c。然后找到id为'92'的Transaction,看是否包含user_id -
鸸鹋,包含。谢谢你
-
@transaction = Transaction.build_user只是初始化与事务关联的用户,但不会将用户保存到数据库 - 用户create_user代替。此外,这将创建一个不是current_user的新用户,这是您想要的吗? -
可能它的交易不属于这个用户。
标签: mysql ruby-on-rails ruby ruby-on-rails-3 activerecord