关系的别名

时间:2016-07-29 04:24:09

标签: ruby-on-rails ruby activerecord

我有这个:

  class User < ActiveRecord::Base
    has_many :jobs

如何在不重命名源类的情况下将“:jobs”重命名为其他内容?我只想将它们称为:

  class User < ActiveRecord::Base
    has_many :obligations

就是这样。我试过了:

has_many :obligations, source: :user

但它不起作用。

2 个答案:

答案 0 :(得分:3)

你做错了。而不是像这样添加源添加类

class User < ActiveRecord::Base
  has_many :obligations,   class_name: 'Job'
end

我希望这能解决你的问题。

答案 1 :(得分:3)

  

如果无法从关联名称派生其他模型的名称,则可以使用:class_name选项提供模型名称。

您必须使用:class_name选项

class User < ActiveRecord::Base
  has_many :obligations, class_name: 'Job'
end