【问题标题】:Linking to basket/cart in ruby on rails链接到 ruby​​ on rails 中的篮子/推车
【发布时间】:2017-04-10 21:54:42
【问题描述】:

我的标题中有一个菜单,其中有一个显示篮和一个登录按钮,当代码单独放置时每个都可以工作,但当两行都在文件中时则不能。 我正在为用户使用设计。 有没有更好的方法来链接到当前的购物篮?

<li><%= link_to basket_path(@basket.id) do %>
  <%= image_tag "/assets/viewBasket.png" %>
</li>
<% end %>
<% if signed_in? %>
  <li><%= link_to edit_user_registration_path do%>
    <%= image_tag"/assets/my_account.png" %></a></li>
  <% end %>
  <li><%= link_to destroy_user_session_path do%>
    <%= image_tag"/assets/logout.png" %></li>
  <%end%>
<% else %>
  <li><%= link_to new_user_session_path do%>
    <%= image_tag"/assets/loginRegisterBtn.png" %></li>
  <% end%>
<% end %>

如果我自己运行,这可以工作,但不能与之后的代码一起运行。

<li><%= link_to basket_path(@basket.id) do %>
  <%= image_tag "/assets/viewBasket.png" %></li>
<% end %>

我认为这与当前篮子在 current_basket 模型中设置会话 id 的方式有关。

module CurrentBasket
private 
  def set_basket
    @basket = Basket.find(session[:basket_id])
    rescue ActiveRecord::RecordNotFound
    @basket = Basket.create
    session[:basket_id] = @basket.id
  end
end

【问题讨论】:

    标签: ruby-on-rails ruby e-commerce shopping


    【解决方案1】:

    &lt;li&gt; 的结束必须在link 的结尾之后,像这样:

    <li>
      <%= link_to basket_path(@basket.id) do %>
        <%= image_tag "/assets/viewBasket.png" %>
      <% end %>
    </li>
    

    【讨论】:

      【解决方案2】:

      我使用上面的答案帮助解决了一个问题,但是,我发现我只定义了商店和索引页面。删除它,它现在可以工作了。

       include CurrentBasket
       before_action :set_basket, only: [:index, :shop]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多