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