Порча Spree с использованием частичного в качестве источника
Я пытаюсь добавить поля в spree admin используя deface. Я следовал их руководству, но они вставляли 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>
1 ответ
Я предполагаю, что вам нужно иметь частичное в папке представлений, а не в папке переопределений - /overrides для файлов.rb - партиалы и другие файлы представлений должны находиться в папке /views: /views/shared или что-то в этом роде,