从模型访问 cookie
Accessing cookies from model
我听说在 Rails 中尝试访问模型中的 cookie 是完全不可能的。
然而这是我的情况:
这是一款用于管理费用的小型应用程序。金额以欧元存储在数据库中,但用户可以设置不同的货币,以便以用户想要的货币显示金额。为此,我已经覆盖了金额属性 getter 和 setter,因此在获取和设置金额时应用汇率。
问题是我将用户选择的货币存储在 cookie 中,覆盖的 setter 和 getter 是在 Expense
模型中定义的,显然:
def quantity=(quantity)
update_rates
write_attribute(:quantity, @eu_bank.exchange(100*quantity.to_i, cookies[:currency], "EUR").cents)
end
def quantity
update_rates
c = read_attribute(:quantity)
@eu_bank.exchange(c.to_i, "EUR", cookies[:currency]).cents/100.0
end
我该如何处理这种情况?
您可以在控制器中访问 cookie,然后通过在控制器中调用类似 my_expences.set_exchange_rate(cookie[:exchange_rate])
的方法将其立即传递给您的模型。
我听说在 Rails 中尝试访问模型中的 cookie 是完全不可能的。
然而这是我的情况:
这是一款用于管理费用的小型应用程序。金额以欧元存储在数据库中,但用户可以设置不同的货币,以便以用户想要的货币显示金额。为此,我已经覆盖了金额属性 getter 和 setter,因此在获取和设置金额时应用汇率。
问题是我将用户选择的货币存储在 cookie 中,覆盖的 setter 和 getter 是在 Expense
模型中定义的,显然:
def quantity=(quantity)
update_rates
write_attribute(:quantity, @eu_bank.exchange(100*quantity.to_i, cookies[:currency], "EUR").cents)
end
def quantity
update_rates
c = read_attribute(:quantity)
@eu_bank.exchange(c.to_i, "EUR", cookies[:currency]).cents/100.0
end
我该如何处理这种情况?
您可以在控制器中访问 cookie,然后通过在控制器中调用类似 my_expences.set_exchange_rate(cookie[:exchange_rate])
的方法将其立即传递给您的模型。