Можно ли перенаправить функцию из одной модели в другую? - PullRequest
0 голосов
/ 25 сентября 2018

У меня есть две модели ActiveRecord:

class Owner < ApplicationRecord
    has_one :fish_tank
end

class FishTank < ApplicationRecord
    belongs_to :owner

    def feed
        # do something
    end
end

Я хочу позволить владельцу кормить свой аквариум.Сейчас я хотел бы создать функцию в классе владельца, которая вызывает класс канала, например:

def feed
    fish_tank.feed
end

Можно ли перенаправить вызов функции в другую модель, например:

has_many :something, through: :anything

Есть ли более чистый способ сделать это?

1 Ответ

0 голосов
/ 25 сентября 2018

Я хочу позволить владельцу кормить аквариум.

Есть ли способ сделать это более чистым, с рельсами?

Да, вы можете использовать делегат метод.В FishTank модели

class FishTank < ApplicationRecord
  belongs_to :owner
  delegate :feed, to: :owner #add this line

  def feed
    # do something
  end
end

Теперь вы можете сделать Owner.new.feed для вызова feed метода

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...