我是Rails的新手

class Category < ActiveRecord::Base
 attr_accessible :type

 has_many :products
end

class Product < ActiveRecord::Base
 attr_accessible :category_id, :color, :price, :title

 belongs_to :category
end

我的schema.rb分如下:-

ActiveRecord::Schema.define(:version => 20130725220046) do

create_table "categories", :force => true do |t|
    t.string   "type"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

  create_table "products", :force => true do |t|
    t.integer  "category_id"
    t.decimal  "price",       :precision => 10, :scale => 0
    t.string   "title"
    t.string   "color"
    t.datetime "created_at",                                 :null => false
    t.datetime "updated_at",                                 :null => false
  end

end

在Rails控制台中,我使用Product.create命令创建了两个产品

[#<Product id: 1, category_id: 1, price: 500, title: "shirt", color: "blue", `created_at: "2013-07-25 22:04:54", updated_at: "2013-07-25 22:04:54">, #<Product id: 2, category_id: 1, price: 600, title: "tees", color: "black", created_at: "2013-07-25 22:05:17", updated_at: "2013-07-25 22:05:17">]`  

并在控制台中使用Category.create命令创建了两个类别

<Category id: 1, type: "clothing", created_at: "2013-07-25 22:03:54", updated_at: "2013-07-25 22:03:54"><Category id: 2, type: "footwear", created_at: "2013-07-25 22:04:02", updated_at: "2013-07-25 22:04:02">  

现在,Product.all可以,但Category.all可以

ActiveRecord::SubclassNotFound:单表继承机制无法定位子类:"clothing".引发此错误的原因是"type"列是为在继承情况下存储类而保留的.如果不打算将此列用于存储继承类或覆盖类别,请重命名此列.使用另一列获取该信息.

里面怎么了?我想在类别和产品之间建立一种关系,比如

推荐答案

type是限定词,不能在ActiveRecord模型中将其用作列名(除非您正在进行STI).

Ruby-on-rails相关问答推荐

在PDF生成中渲染 colored颜色

错误AESGCMOpen获取密码:消息身份验证失败:Golang解密GCM

包含字母和数字组合的正则表达式

Django模型在关系更新时更新相关对象

错误:部署到 Heroku 时找不到模块tailwindcss/defaultTheme

'elseif' 还存在吗?

GroupingError:错误:列必须出现在 GROUP BY 子句中或在聚合函数中使用

验证模型属性大于另一个

Rails:序列化数据库中的对象?

Rails ActiveRecord:验证单个属性

HABTM 关系 - 如何根据关联模型的属性找到记录

在 Rails 中,如何处理多个选中的复选框,只需拆分 , 或?

带有查询字符串参数的 Rails 动作缓存

删除链接在 Rails 3 视图中发送Get而不是Delete

如何验证 ActiveRecord 中邮箱字段的格式?

关于在不适合任何地方的 Rails 应用程序中放置类的指南

Ruby - 合并两个数组并删除重复的值

:javascript haml 标签中的内联Ruby ?

在 Rails 中,在特定时区创建特定时间(不是现在)的最佳方式是什么?

使用设计创建一个用户显示页面