ruby-on-rails - 钱轨 gem : How to make a select list for all currencies?

标签 ruby-on-rails ruby ruby-on-rails-4 money-rails

我正在使用 money-rails gem并希望在我的 View 中显示不同货币的列表,但我现在拥有的代码无法正常工作。

我有我的 Price 模型和字段 in_centscurrency:

create_table :prices do |t|
  t.integer :in_cents, default: 0, null: false
  t.string :currency, default: 'USD', null: false

现在根据Money gem和 Money-Rails 文档我必须做类似的事情:

class Price < ActiveRecord::Base

  monetize :in_cents, as: "amount", with_model_currency: :in_cents_currency

  def all_currencies(hash)
    hash.keys
  end

比起我对简单形式 gem 的看法:

= f.input :currency, collection: all_currencies(Money::Currency.table)
= f.input :amount, required: false

但这给了我错误:

undefined method `all_currencies' for #<#<Class:0xd154124>:0xd15bab4>

为什么?

附言

我想显示 ISO 代码和名称,例如 United States Dollar (USD)

最佳答案

不确定这是最好的解决方案,但我做了一个这样的助手:

  def currency_codes
    currencies = []
    Money::Currency.table.values.each do |currency|
      currencies = currencies + [[currency[:name] + ' (' + currency[:iso_code] + ')', currency[:iso_code]]]
    end
    currencies
  end

关于ruby-on-rails - 钱轨 gem : How to make a select list for all currencies?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25335528/

相关文章:

ruby-on-rails - Spotify 回调 URI 错误

ruby-on-rails - 如何将逻辑从 Controller 转移到模型中?

ruby-on-rails - 未定义的局部变量或方法 `user' Rails Controller 问题

ruby-on-rails - 谷歌分析API中totalItems和实际项目的差异

mysql - 解释对 MySQL 和 Puma 服务器的需求

html - 如何创建包含图像和文本的按钮

ruby - 如何让 ruby 显示更多的小数位?

ruby-on-rails - Rails 低级缓存不缓存

ruby-on-rails - 捕获所有类型的错误并在Rails 4中呈现404页面

ruby-on-rails-4 - 如何创建一个用删除时级联约束更新外键的Rails迁移?