我正在构建购物车,我遇到以下形式的问题:
<div id="produits-column-container">
<% if @produits %>
<% @produits.in_groups_of(4, false).each do |g| %>
<% g.each do |produit| %>
<div id="produits-row-container">
<div id="fiche-produit-container">
<%= form_for order_item, remote: true do |f| %>
<div id="produit-img">
<%= link_to produits_show_path do %>
<%= image_tag produit.photo %>
<% end %>
</div>
<div id="produit-nom">
<%= produit.nom %>
</div>
<div id="produit-prix">
<%= number_to_currency(produit.prix, unit: '€', format: "%n%u") %>
</div>
<div id="produit-au-panier">
<%= image_tag('icon/icon-panier') %>
<%= f.submit 'Ajouter au panier' %>
</div>
<% end %>
</div>
</div>
<% end %>
<% end %>
<% end %>
当我运行服务器时,即使Rails没有引起任何问题,表单也不会出现在视图中。 我不明白为什么,任何想法?
编辑
这是我的produits_controller.rb
:
class ProduitsController < ApplicationController
def index
@produits = Produit.all
@order_item = current_order.order_items.new
if @order_item.save
format.html { redirect_to @order_item, notice: 'Le produit a été ajouté au panier !' }
format.json { render json: @order_item, status: :created, location: @order_item }
format.js
else
format.html { render action: "create" }
format.json { render @order_item.errors, status: unprocessable_entity }
format.js
end
end
def show
@produit = Produit.find(params[:id])
end
end
答案 0 :(得分:1)
删除if @produits
。
使用该行后,当@produits
为空时,表单将不会显示。