我有一个使用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/

10-15 10:50