gpt4 book ai didi

ruby-on-rails - 使用用户设置为number_to_currency设置单位?

转载 作者:行者123 更新时间:2023-12-01 07:38:54 24 4
gpt4 key购买 nike

我想允许用户在整个帐户中更改货币单位。

显而易见的方法是将unit参数传递给number_to_currency,但是鉴于number_to_currency在整个应用程序中已使用了数百次,因此这样做似乎有些重复。

那么,是否有某种方法可以根据存储在数据库中的每个用户的设置来更改number_to_currency的所有实例使用的单位?

最佳答案

在我看来,您需要某种全局函数/变量来定义符号

我会这样:

#app/helpers/application_helper.rb
def unit
User.find(current_user.id).select(:currency_type) #I don't know how your units are stored - you may need logic to return the correctly formatted unit
end

这将允许您调用: <%= number_to_currency, unit: unit %>
覆盖帮助程序方法
number_to_currency实际上只是一个助手,这意味着您可以随时添加选项:

原版的
# File actionpack/lib/action_view/helpers/number_helper.rb, line 106
def number_to_currency(number, options = {})
return unless number
options = escape_unsafe_delimiters_and_separators(options.symbolize_keys)

wrap_with_output_safety_handling(number, options.delete(:raise)) {
ActiveSupport::NumberHelper.number_to_currency(number, options)
}
end

已修改
#app/helpers/application_herlper.rb
def number_to_currency(number, options ={})
unit = User.find(current_user.id).select(:currency_type)
options[:unit] = unit unless options[:unit].present?
super
end

关于ruby-on-rails - 使用用户设置为number_to_currency设置单位?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21165538/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com