ruby-on-rails - rails belongs_to 同一个模型两次

标签 ruby-on-rails ruby rails-activerecord

我有一个任务模型(字段 = 描述,soldier_id:整数,created_by:整数)。

现在我自动将 created_by 分配给创建任务的士兵,我想为必须执行任务的士兵使用 soldier_id。 这样,Task同时属于2个不同领域的Solider应该如何正确完成?现在我有:

class Task < ActiveRecord::Base
  belongs_to :soldier
end 

class Soldier < ActiveRecord::Base
  has_many :tasks
end

最佳答案

像这样:

class Task < ActiveRecord::Base
  belongs_to :soldier
  belongs_to :creator, class_name: Soldier, foreign_key: :created_by
end

class Soldier < ActiveRecord::Base
  has_many :tasks

  # Optional -- I'm unclear if you want this too?
  has_many :created_tasks, class_name: Task, foreign_key: :created_by
end

上面的实现就OK了。但是,如果您希望遵守 Rails 约定(即不需要手动指定 foreign_key),那么您可以调用数据库列 creator_id 而不是 created_by.

关于ruby-on-rails - rails belongs_to 同一个模型两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48078773/

相关文章:

ruby-on-rails - 检查日期时间字段是否等于 Date.today

ruby - <=> 和 - 在 sort 方法的 block 中有什么区别?

ruby - ActiveRecord::StatementInvalid 在/category/5

mysql - 在 Rails 模型中使用范围收集 "private"帖子

ruby-on-rails - 验证多列的唯一性

html - 简单表单添加填充并移动表单上的一些元素

mysql - Rails 的迁移相当于 MySQL 的 'double' 数据类型是什么?

ruby-on-rails - 下划线 'underscoreize' 是正确的 Rails 变形吗?

html - 使用 Nokogiri 解析 HTML 并获取最接近 "<div>"的文本

ruby-on-rails - Ruby on Rails : create action doesn't work, 而新建、编辑和更新(与创建中的形式相同!)操作有效 - 为什么?