Ok, у меня есть это в моей _form.html.erb
Пользовательская проверка для checkbox_box_tag
<div class "field">
<%= label_tag "What days of the week do you want to work with us? (maximum of three days)" %>
<span>What days of the week do you want to work with us? (maximum of three days)</span><br />
<%= check_box_tag 'days_of_week[]', "Monday" %> Monday
<%= check_box_tag 'days_of_week[]', "Tuesday" %> Tuesday
<%= check_box_tag 'days_of_week[]', "Wednesday" %> Wednesday
<%= check_box_tag 'days_of_week[]', "Thursday" %> Thursday
<%= check_box_tag 'days_of_week[]', "Friday" %> Friday
<%= check_box_tag 'days_of_week[]', "Saturday" %> Saturday
<%= check_box_tag 'days_of_week[]', "Sunday" %> Sunday
</div>
Как написать пользовательскую проверку для того, чтобы убедиться, что человек делает проверить три или меньше?
Вот немного фона, что немного усложняет его. Посмотрите на код ниже, см. @new_partnership? это не часть этого ... он появляется в параметрах, но не в параметрах new_partnership.
просто хотел объяснить это.
<%= form_for(@new_partnership) do |f| %>
<% if @new_partnership.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@new_partnership.errors.count, "error") %> prohibited this new_partnership from being saved:</h2>
<ul>
<% @new_partnership.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
Пожалуйста, дайте мне знать, если есть дополнительная информация, которую я должен дать.
EDIT 1
Кроме того, прежде чем кто предлагает JQuery, и т.д. ... есть способ проверить это только в ROR без необходимости прибегать к нему?
Вы знаете, что-то вроде этого: validates :days_of_week, :presence => { :message => "Must check three or less" }
две проблемы из вышеприведенного утверждения, является то, что ROR говорит, что DAYS_OF_WEEK не определен метод (очевидно, так как это пользовательский тег) и во-вторых, это не на самом деле проверьте, были ли отмечены 3 или менее флажка.
hm, другими словами, (pardon my neorance btw) Мне нужно сделать переход, чтобы добавить accessor для days_of_weeks, так как он не является частью массива параметров new_partnership? это то, что вы имели в виду? – user273072545345
также часть «фона» должна была показать, что days_of_week не был частью массива new_partnership, так как это собственный собственный тег. просто хотел прояснить это. извините, я новичок в рубине на рельсах и не совсем уверен, что важно, а что нет. – user273072545345
Ваши флажки представлены массивом переменной длины в 'params'. Rails ActiveRecord сам по себе не относится к атрибутам, зависящим от массива. Вам нужно будет определить свой собственный способ кодирования дней недели в поле базы данных и реализовать их в аксессуарах. – Gene