我有一个使用money-rails gem定义金钱对象的Rails 4应用程序。我在User模型上有一个名为default_price_cents
的货币对象和一个currency
列,用于为每个用户定义货币(如here所示):
class AddDefaultsToUser < ActiveRecord::Migration
def change
add_money :users, :default_price
add_column :users, :currency, :string
end
end
我的 user.rb 有以下几行:
register_currency :usd
monetize :default_price_cents, with_model_currency: :default_price_currency
然后,用户在注册(HAML)中定义其货币:
.form-group
= f.label :currency
= f.select :default_price_currency, [['USD','usd'],['CAD','cad'],['DKK','dkk']]
我试图同时设置
:default_price_currency
和:currency
。在我的 View 中,我有:
humanized_money_with_symbol @default_price
问题:
当我在 View 中显示默认价格时,出于某种原因,它使用我在模型中使用
register_currency
定义的货币,而不是使用用户注册时定义的货币。 如何获得该应用以引用用户定义的货币而不是该模型的注册货币? 最佳答案
解决了!
好吧,令人尴尬的是,写这篇文章帮助我在几秒钟后找到了答案。我将它留给可能需要它的任何人。
我已经在 user.rb 中更改了这一行:
monetize :default_price_cents, with_model_currency: :default_price_currency
看起来像
monetize :default_price_cents, with_model_currency: :currency
并在我的 View 中将
default_price_currency
更改为currency
。关于ruby-on-rails - 将Money-Rails gem 用于多种货币[Rails 4],我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23999913/