没有具有belongs_to class_name关系的此类列
SQLite3::SQLException: no such column: organizations.user_id: SELECT "organizations".* FROM "organizations" WHERE "organizations"."user_id" = 2
我已经设置了这样的模型:
用户:
User has_many :organizations
组织:
attr_accessible :name, :founder, :founder_id belongs_to :founder, :class_name => 'User'
架构:
create_table "organizations", :force => true do |t| t.string "name" t.integer "founder_id"
当我在rails-admin中编辑用户时,我收到以下消息:
`SQLite3::SQLException: no such column: organizations.user_id: SELECT "organizations".* FROM "organizations" WHERE "organizations"."user_id" = 2`
我想在组织上访问创始人,其中创始人是用户。 看起来rails_admin
在寻找创始人时会查找user_id。
上一个q: 可以直接访问引用对象的_id但不能访问该对象
您需要指定从User检索组织时要使用的列,如下所示:
class User < ActiveRecord::Base has_many :organizations, foreign_key: :founder_id #... end
组织模型属于User,因此rails将自动使用User的小写类名+ _id(user_id)作为foreign_key。 由于您的组织模型没有user_id而没有founder_id,因此您需要明确指定founder_id为foreign_key。