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: Can access _id of a references object but not the object directly
答案 0 :(得分:1)
您需要指定从User检索组织时使用的列,如下所示:
class User < ActiveRecord::Base
has_many :organizations, foreign_key: :founder_id
#...
end
答案 1 :(得分:0)
组织模型属于User,因此rails会自动使用User的小写类名+ _id(user_id)作为foreign_key。 由于您的组织模型没有user_id而没有founder_id,因此您需要明确指定founder_id为foreign_key。