如何验证定义为belongs_to的项目的存在?换句话说:
class Temp
include Mongoid::Document
include Mongoid::Timestamps
belongs_to :user
end
我希望确保用户输入。
提前致谢!
答案 0 :(得分:2)
来自fine manual:
关系的父文档应该使用
has_many
宏来指示 n 引用的子项数,其中引用的文档使用belongs_to
。class Band include Mongoid::Document has_many :members end class Member include Mongoid::Document field :name, type: String belongs_to :band end
[...]
# The parent band document. { "_id" : ObjectId("4d3ed089fb60ab534684b7e9") } # The child member document. { "_id" : ObjectId("4d3ed089fb60ab534684b7f1"), "band_id" : ObjectId("4d3ed089fb60ab534684b7e9") }
记下代表band_id
关系的belongs_to :band
。所以说:
belongs_to :user
隐式向field :user_id
添加Temp
。这意味着你可以简单地说:
validates_presence_of :user_id
确保已提供:user_id
。如果您想确保:user_id
有效,那么您可以:
validates_presence_of :user
并且验证将确保temp.user
(即User.find(temp.user_id)
)找到某些内容。