我正在使用rails_admin
来保存project
内的category
。我没有定义project_id
和category_id
,因为我认为它们应该由rails创建。我得到的问题是使用def category_id=(id)
模型中定义的方法project
(见下文)。错误是:
can't write unknown attribute `project_id`
我的模特是:
分类
class Category < ActiveRecord::Base
belongs_to :project, :inverse_of => :category
end
项目
class Project < ActiveRecord::Base
has_one :category, :dependent => :destroy, :inverse_of => :project
def category_id
self.category.try :id
end
def category_id=(id)
self.category = Category.find_by_id(id)
end
end
我的架构:
create_table "categories", force: :cascade do |t|
t.string "title"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "projects", force: :cascade do |t|
t.string "title"
t.text "text"
t.string "url"
t.string "key_feature"
t.string "image_1"
t.string "image_2"
t.string "image_3"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
答案 0 :(得分:2)
如何将项目连接到类别?
根据您的架构项目表没有category_id。
类别表中没有project_id
我会将category_id添加到Projects表。
rails g migration add_category_id_to_projects category_id:integer
rake db:migrate
答案 1 :(得分:0)
最后的解决方案是手动将project_id
添加到categories
表。
rails g migration add_project_id_to_categories project_id:integer
感谢@Misha的建议。