代码之家  ›  专栏  ›  技术社区  ›  Jay

Rails表单未保存“类型:”字段

  •  1
  • Jay  · 技术社区  · 16 年前

    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" %>
    

    “以下字段存在问题: 类型不能为空

    即使我做了选择。我是不是漏掉了什么明显的东西?

    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}
    
    2 回复  |  直到 13 年前
        1
  •  3
  •   Harish Shetty    16 年前

    这个 type 字段是用于单表继承(STI)的保留字段。您必须重命名该字段。

    提到 this 更多详情,请参阅文章

    编辑:将链接更改为指向Matchu提供的文章。

        2
  •  0
  •   Jari Jokinen    13 年前

    如果您确实想要,可以使用名为 类型 在Rails 4中,通过设置 还有一件事:

    class Product < ActiveRecord::Base
      self.inheritance_column = :ruby_type
    end
    

    设置\u继承\u列 相反