Ruby on rails 4 模型属性不是持久化的rails

Ruby on rails 4 模型属性不是持久化的rails,ruby-on-rails-4,Ruby On Rails 4,我有一个模型Bank,它有一个名为iban 数据被发送到第三方 我想让iban不在数据库中持久化,每次都从第三方获取信息 我所做的是: class Bank < ActiveRecord::Base [...] attr_writer :iban before_save :send_to_service_provider def iban ServiceProvider::BankAccount.fetch(user_id) end

我有一个模型
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
classbank
问题是,当我在
send\u to\u service\u provider
中获取
iban
时,它会调用我的方法,而不会获取我传递的值

我需要保留名为iban的getter和setter,因为这是API的一部分,我不想重构我的前端和应用程序


非常感谢您的帮助

考虑使用实例变量:

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

实际上,您不需要定义
iban=
方法,只需在您的
send\u to\u service\u provider
中使用当前代码即可。
  def iban
    @iban ||= ServiceProvider::BankAccount.fetch(user_id)
  end