我有一个数据被提交给模型猜测的表单。在表单提交中在Rails中触发自定义验证
<%= form_for(@guess) do |f| %>
该表格是一堆复选框,我希望确保至少有6个选中。
有人帮我,我把我的猜测模型
validates_inclusion_of :check_box_count, :in => 2..2, :message => "Two checkboxes should be ticked"
...
private
def check_box_count
[secondanswer_chambersapp, secondanswer_drafting, secondanswer_letter,
secondanswer_interview, secondanswer_solicitor, secondanswer_barrister
].select{|x| x }.count
end
但是这个自定义的验证,我不明白我怎么可以从提交的意见形式的触发此方法。这是整个表单的样子。我看着在轨道导轨6.2,但它是我的简单的新手脑子太混乱... http://guides.rubyonrails.org/active_record_validations_callbacks.html#performing-custom-validations
您能否提供我怎么能与验证方法的触发链接的形式提交?当您尝试保存记录时
<%= form_for(@guess) do |f| %>
<% if @guess.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@guess.errors.count, "error") %> prohibited this guess from being saved:</h2>
<ul>
<% @guess.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label(:secondanswer_chambersapp, "Chambers app") %>
<%= f.select:secondanswer_chambersapp, 1..6 %> </br>
</div>
<div class="field">
<%= f.label(:secondanswer_drafting, "Drafting") %>
<%= f.select :secondanswer_drafting, 1..6 %> </br>
</div>
<div class="field">
<%= f.label(:secondanswer_interview, "Interview") %>
<%= f.select :secondanswer_interview, 1..6 %> </br>
</div>
<div class="field">
<%= f.label(:secondanswer_letter, "Client Letter") %>
<%= f.select:secondanswer_letter, 1..6 %> </br>
</div>
<div class="field">
<%= f.label(:secondanswer_barrister, "Barrister's exam") %>
<%= f.select:secondanswer_barrister, 1..6 %> </br>
</div>
<div class="field">
<%= f.label(:secondanswer_solicitor, "Solicitor's exam") %>
<%= f.select:secondanswer_solicitor, 1..6 %> </br>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
因此,验证方法中提到的属性是否允许验证表单中的相同属性?否则,我不会看到它们是如何链接的,因为验证方法的名称可以是任何东西...... – Leahcim