【发布时间】:2012-02-07 18:57:41
【问题描述】:
我有一个使用以下基本语法的 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=
当使用 params[:cont] 时,这个值不会被列为 nil,而是有类似于 '' 的东西作为值。更新记录时,返回值为'',不满足nil要求。
如何防止表单提交仅以占位符文本作为值的可选输入字段?
解决这个问题的最佳方法是从控制器级别的参数中删除它吗?
非常感谢
【问题讨论】:
标签: ruby-on-rails-3 html