Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails:表单不显示_Ruby On Rails_Form For - Fatal编程技术网

Ruby on rails Rails:表单不显示

Ruby on rails Rails:表单不显示,ruby-on-rails,form-for,Ruby On Rails,Form For,我正在构建一个购物车,我对以下表单有问题: <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="fic

我正在构建一个购物车,我对以下表单有问题:

<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 %>
删除带有if@produits的行


有了这一行,当@produits为空时,表单将不会显示。

问题是,我有一个管理员会话添加的产品,所以这里的produits不是空的。。。我已经尝试了你的解决方案,现在我得到了这个错误:undefined method each'for nil:NilClass`那么你刚刚回答了这个问题-@produits是nil。检查您的控制器以查看@produits的创建位置,并填写我已使用produits\u控制器编辑了问题。rbaren您是否缺少@in->@order\u项?请确保@produits不为空。还有一个额外的注释,您正在重复div的id,这不是正确的HTML。
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