我有两个ActiveRecord模型:
class Owner < ApplicationRecord
has_one :fish_tank
end
class FishTank < ApplicationRecord
belongs_to :owner
def feed
# do something
end
end
我想让主人喂它的鱼缸。现在,我将在owner类中创建一个函数来调用feed类,例如:
def feed
fish_tank.feed
end
是否可以将函数调用重定向到另一个模型,例如:
has_many :something, through: :anything
是否有一种更清洁,更安全的方法来做到这一点?
答案 0 :(得分:1)
我想让主人喂鱼缸
是否有一种更清洁,更安全的方法来做到这一点?
是的,您可以使用delegate方法。在FishTank
模型中
class FishTank < ApplicationRecord
belongs_to :owner
delegate :feed, to: :owner #add this line
def feed
# do something
end
end
现在您可以执行Owner.new.feed
来调用feed
方法