我生成了一个简单的Post
脚手架,其title:string body:text category:string
。我后来将type:string
(并执行了迁移)添加到模型中,并在new.html.erb和edit.html.erb中添加了选择字段。我还为所有这些字段添加了验证。
<%= f.label :type %>
<%= f.select :type, Post::TYPES, :prompt => "Select post type" %>
当我尝试创建帖子时,它会给我:
“以下字段存在问题: 类型不能为空 类型不包含在列表“
中即使我做出选择。我错过了一些明显的东西吗?
从Post类中选择代码:
TYPES = [
["Job", "job"],
["Volunteer", "vol"]
]
validates_presence_of :title, :body, :category, :type
validates_inclusion_of :category, :in => CATEGORIES.map {|disp, value| value}
validates_inclusion_of :type, :in => TYPES.map {|disp, value| value}
答案 0 :(得分:3)
答案 1 :(得分:0)
如果您真的想要,可以通过将 inheritance_column 设置为其他内容,在Rails 4中使用名为 type 的字段:
class Product < ActiveRecord::Base
self.inheritance_column = :ruby_type
end
在Rails 3及更低版本中,请改用 set_inheritance_column 方法。