Rails-Mongoid-Devise:创建时,错误消息"User can't be blank"



简单地说,我在Rails 5.2应用程序中使用Mongoid和Devise。在模型文件中,用户has_many :trips和行程belongs_to :user。 提交表单以创建新行程时,保存失败,并显示错误"用户不能为空"。 我可以通过在保存操作之前设置@trip.user = current_user来解决问题,并且在数据库和后续查询中一切看起来都不错,但我不记得以前必须这样做。我已经有一段时间没有用Rails做过任何真正的工作了(从1.1开始,真的 - 是的,那么久(,但我不记得必须用ActiveRecord模型来做这件事。 我在想在模型中设置关联应该解决这个问题。 是否有重大变化,或者Mongoid有什么不同? 在保存之前,我确实弄乱了参数哈希(使用trip_params.to_h(,因为我需要将字符串转换为数组,但即使在我更改它之前,我也在哈希中看不到任何用户的迹象。

如果要在用户对象的实例上创建行程,例如

@user = User.find(params[:user_id])

然后

@user.create_trip(attributes)

然后,您无需在创建行程时设置用户。但是,如果您直接创建旅行,例如

Trip.new(attributes)
trip.save!

然后,您必须在创建行程时指定用户

没有活动记录会注意是否为对象指定的所有关联都已满 它不会为我们设置关联

相关内容

最新更新