我正在关注Spree deface覆盖开发人员指南:http://guides.spreecommerce.com/developer/deface_overrides_tutorial.html
我的代码与他们的代码完全匹配,但我一直收到此错误。我环顾四周,但我没有看到其他任何人遇到这个问题或任何类似问题:
Spree的未定义方法`content_tag':模块
我正在运行Rails 4.0.2和ruby 1.9.3(可能没有为rails 4更新教程?)
这是我的代码:
应用程序/重写/ add_sale_price_to_product_edit.rb
Deface::Override.new(:virtual_path => 'spree/admin/products/_form',
:name => 'add_sale_price_to_product_edit',
:insert_after => "erb[loud]:contains('text_field :price')",
:text => "
<%= f.field_container :sale_price do %>
<%= f.label :sale_price, raw(Spree.t(:sale_price)) %><span>*</span>
<%= f.text_field :sale_price, :value =>
number_to_currency(@product.sale_price, :unit => '') %>
<%= f.error_message_on :sale_price %>
<% end %>
")
应用程序/模型/礼包/ product_decorator.rb
module Spree
Product.class_eval do
delegate_belongs_to :master, :sale_price
end
end
答案 0 :(得分:6)
您收到错误是因为未指定Spree.t(:sale_price)的翻译。这是失败的,因为Rails 4.0.2做了一些changes to the I18n API 。你有几个选择。
任何这些都应该让你再次工作。