【问题标题】:ActiveAdmin number_to_currency helperActiveAdmin number_to_currency 助手
【发布时间】:2014-05-21 11:06:28
【问题描述】:

我通过 ActiveAdmin 构建了一个管理界面。我有一些资源,比如产品,在产品中我有文章、标题、描述和价格列。一切运行良好,但我有一个小问题,在价格列我使用助手 number_to_currency,默认情况下 ActiveAdmin 将货币显示为 USD。我想以当地货币显示价格,所以在这里我有一个问题,如何实现这个助手以当地货币(例如 FR、AUD 或 RUB)显示价格。


Rails 4.1.0

ActiveAdmin 1.0.0

红宝石 2.1


app/admin/product.rb

ActiveAdmin.register Product do

    # Permitted parameters
    permit_params :article_id, :title, :description, :price

    # Displayed columns
    index do
        column :article, :sortable => :article
        column :title
        column :description
    # Currency helper
        column :price, :sortable => :price do |cur|
            number_to_currency cur.price
        end
        default_actions
    end
end

app/models/product.rb

class Product < ActiveRecord::Base

    # Relationship
    belongs_to :article

    # Validations
    validates :article, :title, :description, :price, :presence => true
end

【问题讨论】:

    标签: ruby ruby-on-rails-4 locale activeadmin


    【解决方案1】:

    使用:locale 参数。来自documentation

    选项


    :locale - 设置用于格式化的语言环境(默认为当前语言环境)

    ...剪辑...

    number_to_currency(1234567890.506, locale: :fr)      # => 1 234 567 890,51 €
    

    要添加对语言环境的支持,您需要在 config/locale 下添加一个 &lt;locale&gt;.yml,例如:

    ru.yml

    ru:
      number:
        currency:
          format:
            delimiter: ! ','
            format: ! '%n %u'
            precision: 2
            separator: '.'
            unit: руб.
    

    【讨论】:

    • 抱歉,我需要在 app/admin/product.rb 中实现它,或者我需要制作一个帮助文件并将 require 放入 app/admin/product.rb 中?也非常感谢您的再次帮助;)
    • 这是内置在 number_to_currency API 中的(请参阅链接) - 您需要做的就是在其调用中添加语言环境信息 (number_to_currency cur.price, locale: my_locale)
    • 先生,你是巫师。非常感谢;)
    • hmmm 可能有点奇怪,但什么都没有发生,我仍然看到美元
    • 您设置的是什么语言环境?你可以在rails c 测试它,然后在你的服务器上运行它
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-30
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多