在 rails 上链接到 ruby 中的 basket/cart
Linking to basket/cart in ruby on rails
我的页眉中有一个菜单,其中有一个展示篮和一个登录按钮,当代码分别放置时,每个都可以工作,但当两行都在文件中时,它们就不会工作。
我正在为用户使用设计。
有没有更好的方法link到当前篮子?
<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
<li>
的结束必须在link
结束之后,像这样:
<li>
<%= link_to basket_path(@basket.id) do %>
<%= image_tag "/assets/viewBasket.png" %>
<% end %>
</li>
我使用上面的答案帮助解决了一个问题,但是,我发现我只定义了商店和索引页面。删除它,它现在可以工作了。
include CurrentBasket
before_action :set_basket, only: [:index, :shop]
我的页眉中有一个菜单,其中有一个展示篮和一个登录按钮,当代码分别放置时,每个都可以工作,但当两行都在文件中时,它们就不会工作。 我正在为用户使用设计。 有没有更好的方法link到当前篮子?
<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
<li>
的结束必须在link
结束之后,像这样:
<li>
<%= link_to basket_path(@basket.id) do %>
<%= image_tag "/assets/viewBasket.png" %>
<% end %>
</li>
我使用上面的答案帮助解决了一个问题,但是,我发现我只定义了商店和索引页面。删除它,它现在可以工作了。
include CurrentBasket
before_action :set_basket, only: [:index, :shop]