我有这个型号:
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
我知道我可以使用另一个内部名称进行关联,但希望避免这种情况。
我很确定当你调用普通关联User#company
方法时Rails会调用某种内部方法,我想在我重新定义的User#company
方法中自己调用它。
谢谢!
答案 0 :(得分: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"
,我认为这是一个更好的解决方案。