【发布时间】:2014-04-01 18:03:50
【问题描述】:
我有一个名为 Directive 的模型属于 User 模型,Directive 模型有 5 个字段(字符串)。我创建了一个 form_for,每个字段都有 5 个复选框,每个复选框都有一个数字值。
到目前为止,一切都很好。问题是当我尝试提交表单时。我检查的复选框不会因错误而持续存在,并且它们没有被提交。我的参数是空白的。
不过,它与单选按钮配合得很好。
我的表单示例:
<%= form_for(@directive, url: dashboard_directives_path(:type => params[:type]), html: {method: "post", class: "form-horizontal"}) do |f| %>
<%= f.check_box :place, "1" %>
<%= f.check_box :place, "2" %>
<%= f.check_box :place, "3" %>
...
<%= f.check_box :field2, "1" %>
...
<% end %>
这是我的控制器操作:
def new
@directive = current_member.directives.new
end
def create
@directive = current_member.directives.new(directive_params)
if @directive.save
redirect_to dashboard_path, :success => "Directive created with success!"
else
render "new"
end
end
我的控制器中的参数:
private
def directive_params
if params[:directive].present?
params.require(:directive).permit(:place, :field2, :field3, :field4, :field5)
else
params.fetch(:directive, {})
end
end
还有模特:
class Directive < ActiveRecord::Base
belongs_to :members, :class_name => 'Member', :foreign_key => 'member_id'
validates :place, :field2, :field3, :field4, :field5, presence: true
end
【问题讨论】:
-
由于这需要大量调试,让我们在聊天室 chat.stackoverflow.com/rooms/48530/ror 上讨论这个问题
标签: ruby-on-rails validation activerecord ruby-on-rails-4 model