我有2个模型,用户和任务
它们的关联如下:
class User < ActiveRecord::Base
has_many :tasks, foreign_key: "assigned_to"
end
任务模型的架构如下:
t.string "taskable_type", limit: 255
t.integer "taskable_id"
t.string "title", limit: 255
t.text "description"
t.integer "added_by"
t.integer "assigned_to"
t.datetime "due_date"
t.datetime "created_at"
t.datetime "updated_at"
t.datetime "completed_at"
t.datetime "deleted_at"
我还想将add_by字段与users表相关联。
我该怎么做?
答案 0 :(得分:1)
您可以添加第二个关联,只需要为其指定一个唯一名称,例如:
class User < ActiveRecord::Base
has_many :tasks, foreign_key: "assigned_to"
has_many :added_tasks, foreign_key: "added_by", class_name: "Task"
end
在这种情况下,您必须添加选项class_name: "Task"
,因为无法从关联名称“added_tasks”推断出正确的类名(它会查找名为“AddedTask”的类)。
documentation for has_many列出了指导您完成此类操作的选项。