我在我的模特中有这个。
但是,该模型被用作多态,我希望有不同的条件
如果我在控制器中执行此操作,我该如何编写代码?
模型/ comment.rb
validates_length_of :body,
:within => 10..100,
:message => "must be between 10 to 100 characters"
更新:
我只想在社区模型在评论模型中创建评论时使用此验证条件。 评论模型是多态的! 它有commentable_type和commentable_id
答案 0 :(得分:4)
不,你不能在控制器中做这样的事情。 在模型中使用条件或将其放在社区模型中。
validates_length_of :body,
:within => 10..100,
:message => "must be between 10 to 100 characters", :if => "community?"
def community?
return self.commentable_type == "Community"
end
答案 1 :(得分:0)
您必须在模型中执行此操作
答案 2 :(得分:0)
在你的模特中,
validates_length_of :body,
:when => [ :comment ],
:within => 10..100,
:message => "must be between 10 to 100 characters"
您可以使用:unless
之类的(:unless => Community.new { |a| a.comment? }
)
此link可帮助您根据自己的需要进行理解和编辑。这只是idea
来解决您的问题。