0

我的 Rails 4 应用程序中的两个模型是 -Accommodation.rbAccount.rb- 每个住宿has_one帐户。

在我的Accommodation.rb我有这个方法:

def my_method
  self.field = "Something"
  save!
end

我从使用中调用该方法AccommodationsController.rb

accommodation.my_method

但我还需要能够在维护关联的同时Account.rbAccommodation.rb模型中调用我的方法,这样如果我在 Accounts 表中创建或更新记录,它将知道要引用哪个 accommodation_id。类似的东西:

Account.accommodation.my_other_method

但我知道这行不通,因为它是“黑暗中的刺”

注意我试图在我的模型中保留我的逻辑

4

1 回答 1

4

要引用关联的模型(例如,为了调用它的方法),您只需使用与模型名称匹配的自动生成的方法。

例如,如果 Accommodation has_oneAccount 和accommodation是一个 Accommodation 对象,您可以调用accommodation.account来引用关联的帐户。这个引用可以正常调用它的方法:accommodation.account.my_account_instance_method(foo)

或者,如果您在住宿中的方法定义中,则可以直接引用该方法:

class Accommodation
  has_one :account

  def do_something
    account.my_account_instance_method
  end
end

所有这些都在Rails 关联基础指南中有很好的记录,我强烈建议您至少简要阅读一下。

于 2013-10-07T20:06:30.070 回答