我按照本教程http://pauldeardorff.com/2013/08/14/handling-currencies-in-ruby-on-rails-apps/关于在rails应用中添加价格和货币选择。
在初学者应用程序中,我的模块设置与简单教程
完全相同当我第一次为我的产品类渲染新动作时,我的问题似乎就出现了。本教程建议在rails Lib文件夹中创建money_attributes文件。
# lib/money_attributes.rb
module MoneyAttributes
extend ActiveSupport::Concern
module ClassMethods
def money_attributes *args
args.each do |attribute|
cents_attribute = "#{attribute}_in_cents"
define_method attribute do
send(cents_attribute).try("/", 100.0)
end
define_method "#{attribute}=" do |value|
value.gsub!(/[^\d.]/,"") if value.is_a? String
send("#{cents_attribute}=", value.try(:to_f).try("*", 100))
end
define_method "#{attribute}_money" do
Money.new(send("#{attribute}_in_cents").to_f || 0,send("currency")).format
end
attr_accessible attribute if accessible_attributes.include?(cents_attribute)
end
end
end
end
我的应用程序吐出未定义的局部变量或方法`accessible_attributes'。
我知道错误是什么,因为' accessible_attributes'已经停止使用轨道4我相信。我的问题是我不知道如何解决这个问题。此外,我的控制强参数如下所示
products_controller.rb
...... 私人
def product_params
params.require(:product).permit(:price, :currency)
end
如果有人知道如何解决这个问题,我会非常感激它,或者可能有一个更符合教程的方法。我的问题是我希望在我的模型表格中单独选择价格和货币。就像在本教程中指定的一样。任何帮助将不胜感激。