私は見出しバスケットとログインボタンを備えたメニューを持っています。コードは別々に配置されていても両方の行がファイルにあるときは機能しません。 私はユーザーのためにdeviseを使用しています。 現在のバスケットにリンクするには、より良い方法がありますか?ルビーのレールでバスケット/カートにリンクする
<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 %>
私自身で実行すると、このコードは動作しますが、コードでは動作しません。
現在のバスケットが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