0

JavaScript を介してコントローラ アクションに応答しています。パーシャルをレンダリングしたい。ショッピング カートが空であるか、既にアイテムが入っているかによって、パーシャルを追加するさまざまなセレクターがあります。

一般的なマークアップは次のとおりです。

<div id="expresscart">
  <ul id="expresslist">
    <li class="expressitem">..</li>
    <li class="expressitem">..</li>
  </ul>
</div>

何らかの理由で、別の「li.expressitem」の後にliを追加しても問題はありません。

しかし、最初のliulに挿入しようとすると、次のエラーが発生します。

構文エラー、予期しない keyword_ensure、')' が必要です

アクションに応答する JS は次のとおりです。

$('.linktocart a').html('<%= escape_javascript link_to_cart %>');
<% if current_order.empty? %>
  $("#expresslist").append("<%= escape_javascript render :partial => 'spree/line_items/express', :locals => {:line_item => @line_item} %>");
<% else %>
  $(".expressitem:last").after("<%= escape_javascript render :partial => 'spree/line_items/express', :locals => {:line_item => @line_item} %>");
<% end %>

レンダリングされるパーシャルは次のとおりです。

%li.expressitem{"data-expresslineid" => line_item.id}
  %div.expressimage
    - if line_item.variant.images.any?
      %figure
        = image_tag line_item.variant.images.last.attachment.url(:sideline)
  .expressdescription
    %h1
      = line_item.variant.product.name
      %span.expressprice
        = line_item.money
    %p.expressitemdesc.clearfix
      = line_item.item_options
    - if line_item.subscription_line
      %p.expressautoship
        = t(:autoship_every, :month => pluralize(line_item.subscription.interval, 'month'))

  %div.expressitemoptions
    %ul.inline
      %li.expressremove
        = link_to(t(:remove), '#')

私はここで何が欠けているのだろうか?

4

0 に答える 0