我有一個數據被提交給模型猜測的表單。在表單提交中在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