Rails表示不保存’Type:’字段
我生成了一个简单的Post
scaffold,它有title:string body:text category:string
。 我后来在模型中添加了type:string
(并执行了迁移),并在new.html.erb和edit.html.erb中添加了选择字段。 我还为所有这些字段添加了validation。
"Select post type" %>
当我尝试创建post时,它给了我:
“以下字段存在问题:类型不能为空类型不包含在列表中”
即使我做出选择。 我错过了一些明显的东西吗?
从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}
type
字段是用于单表inheritance(STI)的保留字段。 您必须重命名该字段。
有关更多详细信息,请参阅此文章
编辑:更改链接以指向Matchu提供的文章。
如果你真的想要,你可以通过将inheritance_column设置为其他东西来在Rails 4中使用名为type的字段:
class Product < ActiveRecord::Base self.inheritance_column = :ruby_type end
在Rails 3及更低版本中,请使用方法set_inheritance_column 。