У меня есть форма Rails 3, которая использует следующий основной синтаксис:
<%= form_for(:cont, :url => {:action => 'update', :id => @cont.id}) do |f| %>
<%= render(:partial => 'form', :locals => {:f => f}) %>
<%= submit_tag("Update", :class => 'submit') %>
<% end %>
Где частичное выглядит примерно так:
<%= f.label(:name) %><%= f.text_field(:name, :placeholder => 'John Doe', :title => 'First and Last Name' %>
<%= f.label(:optional_description) %><%= f.text_field(:optional_description, :placeholder => 'not required', :title => 'Seriously, its optional' %>
Когда форма отправляется с "имя «правильно введено (и проверено в модели)» и «опциональное_добавление» осталось с текстом заполнителя по умолчанию, запрос POST отправляет что-то похожее на следующее:
POST /cont/update/1
...
name=Jane%20Smith&optional_description=
Когда принимаются параметры [: cont]это значение не указано как ноль, а скорее имеет значение, аналогичное значению ''.Когда запись обновляется, возвращается значение '', что не удовлетворяет требованию nil.
Как запретить форме отправлять необязательные поля ввода с только заполнителем текста в качестве значений?
Это лучший способ исправить это, просто удалив его из параметров на уровне контроллера?
Очень ценится