Rails:表单不显示

时间:2017-05-22 08:01:39

标签: 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="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

1 个答案:

答案 0 :(得分:1)

删除if @produits

使用该行后,当@produits为空时,表单将不会显示。