我正在尝试使用 deface 向 spree admin 添加字段。我按照他们的教程进行操作,但他们使用字符串插入 html。我试图将该字符串移动到一个html.erb
文件中并将源作为部分引用,并得到以下错误。
undefined method `empty?' for nil:NilClass
注意:所有在大礼包扩展中完成
教程中的代码有效:
# /overrides/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 => '[data-hook="admin_product_form_price"]',
:text => "<%= f.field_container :sale_price do %>
<%= f.label :sale_price, raw(Spree.t(:sale_price) + content_tag(:span, ' *')) %>
<%= f.text_field :sale_price, :value =>
number_to_currency(@product.sale_price, :unit => '') %>
<%= f.error_message_on :sale_price %>
<% end %>")
使用部分(不起作用):
# /overrides/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 => '[data-hook="admin_product_form_price"]',
:partial => 'simple_sale')
# /overrides/_simple_sale.html.erb
<div>
<%= f.field_container :sale_price do %>
<%= f.label :sale_price, raw(Spree.t(:sale_price) + content_tag(:span, ' *')) %>
<%= f.text_field :sale_price, :value =>
number_to_currency(@product.sale_price, :unit => '') %>
<%= f.error_message_on :sale_price %>
<% end %>
</div>