#4 楼 @blacktulip 上辈子的好。
By default conditional validators are not evaluated and passed to the client. We do this because the state model when the form is rendered is not necessarily the state of the model when the validations fire server-side. However, if you wish to override this behavior you can do so in the form. Given the following model:
class Person < ActiveRecord::Base
validates :name, :email, :presence => true, :length => { :maximum => 10 }, :if => :can_validate?
def can_validate
true
end
end
You can force in the form:
<%= f.text_field :name, :validate => true %>
Passing :validate => true
will force all the validators for that attribute. If there are conditionals they are evaluated with the state of the model when rendering the form
也就是说默认情况下条件验证是不会直接执行并传递给客户端(也就是你的 view 中 form 部分的代码),那如果你想让你自己写得条件验证生效的话,你就需要在表单代码里加入 :validate => true
, 具体请参考上面的示例代码。
去看 client_side_validation 在 github 上面的 README 中 conditional validation 部分的说明。
去看 rails 敏捷开发那本书,里面有示例
同意。
与楼主有过一面之缘哈。
嗯,门票的确是可以高些。
永远没有头儿,直到死。 不过哪些不就是生活吗,有什么好愁的呢,我觉得能够看着自己一件件的完成生命中最重要的几件事:谈恋爱、结婚、买房子、装修、生孩子、养孩子等等,这本生不就是幸福吗?
这才是靠谱的有诚意的招聘帖子呀,顶起来