0

我有这个模型:

class User < ActiveRecord::Base
  belongs_to :company

  def company
    # Do something here

    # Call the actual association (that would be usually returned by calling User#company)
  end
end

我知道我可以为关联使用另一个内部名称,但想避免这种情况。

我很确定当您调用普通关联方法时,Rails 会调用某种内部方法,User#company我想在此处重新定义的方法中自己调用它User#company

谢谢!

4

1 回答 1

1

你可以调用super你的方法。或association(:company)associations(:company)(我忘了是哪一个)。或者你可以

def company_with_my_stuff
  company_without_my_stuff
end
alias_method_chain :company, :my_stuff

您也可以重命名belongs_to :original_company, :class_name => "Company", :foreign_key => "company_id"我认为更好的解决方案。

于 2012-11-09T13:21:05.337 回答