2017-04-10 114 views
0

我的头文件中有一个菜单,其中包含一个显示篮和一个登录按钮,每个代码分开放置时都会工作,但两个线都放在文件中时不会。 我正在为用户使用设计。 有没有更好的方法来链接到当前的篮子?链接到轨道上的红宝石的购物车

<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 

回答

0

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

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

<li>收盘必须link结束后,像这样:

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