атрибуты модели не сохранились рельсы - PullRequest
0 голосов
/ 04 июля 2018

У меня есть модель Bank, которая имеет постоянный атрибут с именем iban Данные отправляются третьей стороне.

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

что я сделал, это:

class Bank < ActiveRecord::Base
   [...]
    attr_writer :iban

    before_save :send_to_service_provider

    def iban
       ServiceProvider::BankAccount.fetch(user_id)
    end

    def send_to_service_provider
       ServiceProvider::BankAccount.create(iban: iban, user_id: user.id)
    end
end

Проблема в том, что когда я получаю iban в send_to_service_provider, он вызывает мой метод и не получает значение, которое я передал

Мне нужно оставить получатель и установщик с именем iban, потому что это часть API, и я не хочу реорганизовывать мой фронт и мои приложения

большое спасибо за вашу помощь

1 Ответ

0 голосов
/ 04 июля 2018

Рассмотрите возможность использования переменных экземпляра:

class Bank < ActiveRecord::Base
  [...]

  before_save :send_to_service_provider

  def iban
    ServiceProvider::BankAccount.fetch(user_id)
  end

  def iban=(value)
    @iban = value
  end

  def send_to_service_provider
    ServiceProvider::BankAccount.create(iban: @iban, user_id: user.id)
  end
end

Таким образом, вы можете даже рассмотреть кэширование ServiceProvider:

  def iban
    @iban ||= ServiceProvider::BankAccount.fetch(user_id)
  end
...