Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 验证静态数据上始终失败的\u包含\u_Ruby_Ruby On Rails 3_Validation - Fatal编程技术网

Ruby 验证静态数据上始终失败的\u包含\u

Ruby 验证静态数据上始终失败的\u包含\u,ruby,ruby-on-rails-3,validation,Ruby,Ruby On Rails 3,Validation,我正在使用rails 3.1.0.rc5,同时尝试实现一个伪枚举字段 我试图验证绑定到静态列表的字段的值。不幸的是,它总是无法验证 型号代码> STATUSES = %w( pending active completed ) validates_inclusion_of :status, :in => STATUSES, :on => :create, :message => "%{value} must be one of #{STATUSES.join ', '}"

我正在使用rails 3.1.0.rc5,同时尝试实现一个伪枚举字段

我试图验证绑定到静态列表的字段的值。不幸的是,它总是无法验证

型号代码>

STATUSES = %w( pending active completed )
  validates_inclusion_of :status, :in => STATUSES, :on => :create, :message => "%{value} must be one of #{STATUSES.join ', '}"
表单标记>

 <div class="field">
    <%= f.label :status %><br />
    <%= select_tag :status, options_for_select(Task::STATUSES, @task.status) %>
  </div>
然而,status=(setter)似乎从未被调用


谢谢

我不能不看一下您的控制器就知道,但我假设您的控制器正在执行以下操作:

# I'm naming the model User but this would be the name of the model you're using
@user = User.create(params[:user])
您的表单将发布如下内容:

{ :status => 'pending' }
当它应该将状态放入用户哈希中时,如下所示:

{ :user => { :status => 'pending' } }
您需要更改表单以正确发布属性:



我不能不看一下您的控制器就知道,但我假设您的控制器正在执行以下操作:

# I'm naming the model User but this would be the name of the model you're using
@user = User.create(params[:user])
您的表单将发布如下内容:

{ :status => 'pending' }
当它应该将状态放入用户哈希中时,如下所示:

{ :user => { :status => 'pending' } }
您需要更改表单以正确发布属性:



我认为您的问题与select标记有关。当您调用User.new(params[:User])或类似的东西时,必须使用helper才能调用setter。

我认为您的问题与select标记有关。当您调用User.new(params[:User])或类似的东西时,您必须使用助手才能调用setter。

非常感谢您。。。我正在查看post数据,但在状态字段之前没有看到}右括号。。太晚了=\这帮助我解决了另一个我也遇到的问题。。谢谢以防万一,其他人将有一个select来处理相关字段。。这似乎最适合我“请选择用户”)%>非常感谢。。。我正在查看post数据,但在状态字段之前没有看到}右括号。。太晚了=\这帮助我解决了另一个我也遇到的问题。。谢谢以防万一,其他人将有一个select来处理相关字段。。这似乎最适合我“请选择用户”)%>