我的环境
Rails 3.2.1
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]
我想根据提交值更改验证方法。
例如,在以下视图中,当推送“only_foo”时,我只想检查“foo”的验证,但是当推送“only_bar”时,我只想检查“bar”的验证。
<%= from_for(@user, :url => "/hoge/") %>
<%= f.text_field 'foo' %>
<%= f.text_field 'bar' %>
<%= f.submit 'only_foo' %>
<%= f.submit 'only_bar' %>
<% end %>
在用户模型中,我想在 validate 方法中获取提交值。
validate :foo, :presence => true, :if => :only_foo?
validate :bar, :presence => true, :if => :only_bar?
def only_foo?
# I want to get the commit value, like this.
commit == 'only_foo'
end
def only_bar?
# I want to get the commit value, like this.
commit == 'only_bar'
end
还是有更好的做法?
提前谢谢了。