1

製品のリストではなく、サイドバーからメイン ページにタクソノミーを追加したいのですが、改ざんがうまくいきません。

Deface::Override.new(
:virtual_path => 'spree/shared/_products',
:name => 'change view',
:replace => "[data-hook='homepage_products']",
:text => "
            <% max_level = Spree::Config[:max_level_in_taxons_menu] || 1 %>
            <nav id='taxonomies2' class='sidebar-item' data-hook>
                <% @taxonomies.each do |taxonomy| %>
                    <% cache [I18n.locale, taxonomy, max_level] do %>
                        <h4 class='taxonomy-root'><%= Spree.t(:shop_by_taxonomy, :taxonomy => taxonomy.name) %></h4>
                        <%= taxons_tree(taxonomy.root, @taxon, max_level) %>
                    <% end %>
                <% end %>
            </nav> ")

私はこれに本当にひどく立ち往生しています。

4

2 に答える 2

1

ケース - サーバーの再起動: オーバーライドを変更するたびにサーバーを再起動する必要はありません。

はい、設定している場合は必要ですconfig.deface.enabled = false。通常、これを設定production.rbします。その場合、オーバーライドをプリコンパイルする必要があります。詳細については、これを参照してください


デバッグ手法: 部分/テンプレートのパスが正しいかどうかわからない場合は、この手法を使用して確認できます。

$ rake deface:get_result['spree/shared/_link_to_account']
=> ActionView::MissingTemplate: Missing template

$ rake deface:get_result['spree/shared/_login_bar']
# ---------------- Before ----------------
# <% if spree_current_user %>
#   <li><%= link_to Spree.t(:my_account), spree.account_path %></li>
#   <li><%= link_to Spree.t(:logout), spree.logout_path %></li>
# <% else %>

次のように、セレクターを確認することもできます

$ rake deface:test_selector['spree/shared/_login_bar , li']
# Querying 'spree/shared/_login_bar' for 'li'
# ---------------- Match 1 ----------------
# <li>
# <%= link_to 'Dashboard', '/admin' if spree_current_user.is_admin? %> </li>
# ---------------- Match 2 ----------------

さらに、セレクターが検証された後もエラーが続く場合は、置き換えようとしている に/エラーtextが含まれていないことを確認する必要があります。syntaxruntime

于 2016-03-17T10:54:05.813 に答える