使用单选按钮解决`validates_inclusion_of`问题

时间:2011-07-01 01:03:23

标签: ruby-on-rails ruby ruby-on-rails-3 validation inclusion

我正在使用Ruby on Rails 3.0.7,我在使用validates_inclusion_of方法时遇到了问题。

我的模型文件我有:

class User <  ActiveRecord::Base
  INCLUSION_VALUES = ['beautiful', 'ugly', 'good', 'bad']

  validates :test,
    :inclusion => { 
      :in => User::INCLUSION_VALUES
    }
end

在我的视图文件中,我有

<%= form_for(@user) do |f| %>
  <% User::INCLUSION_VALUES.each do |test| %>
    <%= f.radio_button :test, test %>
  <% end %>
<% end %>

以上&#34;观点&#34;代码生成这个:

<input type="radio" value="beautiful" name="user[test]" id="user_test_beautiful">
<input type="radio" value="ugly" name="user[test]" id="user_test_ugly">
<input type="radio" value="good" name="user[test]" id="user_test_good">
<input type="radio" value="bad" name="user[test]" id="user_test_bad">

无论我做什么提交给我验证错误的表单:

Test is not included in the list

如何解决问题?


我也尝试使用(如页面上方注释中所述here

%w(beautiful, ugly, good, bad)

validates_inclusion_of格式

validates_inclusion_of :test, :in => User::INCLUSION_VALUES

  validates :test, :inclusion => User::INCLUSION_VALUES

但我总是得到验证错误。

1 个答案:

答案 0 :(得分:2)

解决方案(dho!)

我忘了制作属性attr_accessible