Rails 4:从多个连接表获取数据

时间:2014-01-31 16:03:45

标签: ruby-on-rails ruby-on-rails-4 many-to-many has-many-through

我做了一些研究。 Rails 3使用:选择向其注入SQL,但在Rail 4中弃用。

如何轻松归档?

例如,在以下型号中。 我想要

boss.employees[0].salary

模型

class Boss < ActiveRecord::Base
    has_many :employments
    has_many :employees, :through => :employments
end

class Employee < ActiveRecord::Base
    has_many :employments
    has_many :bosses, :through => :employments
end

员工迁移:

class CreateEmployments < ActiveRecord::Migration
    def change
      create_table :employments do |t|
        t.integer :boss_id
        t.integer :employee_id
        t.decimal :salary

        t.timestamps
      end
    end
end

2 个答案:

答案 0 :(得分:0)

行。我发现了一些东西。

class Boss < ActiveRecord::Base
  has_many :employments
  has_many :employees, -> { select('employees.*, employment.salary as salary') } :through => :employments
end

答案 1 :(得分:0)

我知道这篇文章有点陈旧,但我觉得你错过了什么。您的课程看起来很好,就业模式也是如此。您没有发布课程就业,所以我假设它是您系统中缺少的链接。

class Employment < ActiveRecord::Base

    belongs_to :boss
    belongs_to :employee

end