1

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。

上一个问题: 可以访问引用对象的_id,但不能直接访问该对象

4

2 回答 2

2

从 User 中检索组织时,您需要指定要使用的列,如下所示:

class User < ActiveRecord::Base
  has_many :organizations, foreign_key: :founder_id

  #...
end
于 2013-06-05T01:38:51.100 回答
0

组织模型属于用户,所以rails会自动使用用户的小写类名+_id(user_id)作为foreign_key。由于您的组织模型没有 user_id 但有创始人 ID,因此您需要明确指定创始人 ID 为 foreign_key。

于 2013-06-05T05:32:35.147 回答