jay*_*del 1 ruby-on-rails associations ruby-on-rails-3
我正在使用Rails 3,并且我有一个我想要定义的一对多关联:用户可以将许多主题系列分配给他/她,但是主题系列只能分配给一个用户.
这是我定义的内容:
class User
has_many :subject_families
class SubjectFamily
belongs_to :assignee, :class_name => "User", :foreign_key => 'assigned_to'
Run Code Online (Sandbox Code Playgroud)
我添加了一个执行此操作的迁移:
change_table(:subject_families) do |t|
t.integer :assigned_to
end
Run Code Online (Sandbox Code Playgroud)
我尝试做的时候遇到异常:
u = User.first
s = u.subject_families
Run Code Online (Sandbox Code Playgroud)
这是例外:
Invalid column name 'user_id'.: SELECT [subject_families].* FROM [subject_families] WHERE ([subject_families].user_id = 1)
Run Code Online (Sandbox Code Playgroud)
我期待这是使用subject_families.assigned_to而不是user_id但是看到我对这个期望感到失望.谁能看到我在这里错过的东西?我已经google了很多,从我可以看到这应该工作.
我相信您还需要在User模型中的has_many关联声明中指定:foreign_key选项.
class User
has_many :subject_families, :foreign_key => 'assigned_to'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1350 次 |
| 最近记录: |