如何访问不同模型中的属性

时间:2011-11-22 18:57:12

标签: ruby-on-rails ruby oop

我有两个型号

  • 缺席:金额,staff_id
  • 员工:id,leave_balance

在缺席模型中我想编辑其成员在employee_id中的职员,然后我想更改他们的leave_balance但我不知道如何根据当前模型中的staff_id访问职员模型中的该属性在缺席时使用我的方法

2 个答案:

答案 0 :(得分:0)

首先看一下广泛的Rails Guide to Active Record Associations来理解这个概念。

然后你可以这样做:

<强> Staff.rb

class Staff < ActiveRecord::Base
  has_one :absence # or has_many :absence
end

<强> Absence.rb

class Absence < ActiveRecord::Base
  belongs_to :staff
end

现在,您可以通过Absence.first.staff.leave_balance -= 1或在缺勤模型self.staff.leave_balance = ...

中的实例方法中访问该属性

答案 1 :(得分:0)

你建立了你的人际关系吗?

在Absence课程中,你应该有

belongs_to :staff

在Staff课程中,你应该有

has_many :absence

完成后,您可以执行以下操作:

a = Absence.last
a.staff.leave_balance -= 1

s = Staff.first
s.leave_balance -= s.absences.count