从模型访问cookie

我听说尝试在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])将其立即传递给您的模型。