1

我有一个模型产品,我想创建然后在 text_field 下列出

在我的控制器中

class ProductController < ApplicationController
def buy
    @product = Product.new(product_params)

        respond_to do |format|
            if @product.save
                format.html { redirect_to @product, notice: 'Product was successfully added.'}
            else
                format.html { redirect_to @product, notice: 'Failed to added.'}
            end
        end
    end

    private

    def product_params
        params.permit(:name, :description)
    end

结尾

并查看

<%= simple_form_for @product, :url => { :controller => 'product', :action => 'buy'} do |f| %>
<%= f.input :name %>
<%= f.input :description %>
<%= f.button :label => 'BUY', :class => 'btn add-product btn-primary' %>

<% end %>

我尝试在同一个视图中列出

        <% @products.each do |product| %>
        <%= product.name %>
        <%= product.description %>

和脚本

<script>
 $('.add-product').click(function(){
  $('.product').clone().first().appendTo('.container');
 })

我不确定代码是否可以运行因为我遇到了问题

NilClass:Class 的未定义方法“model_name”

在这个 <%= simple_form_for @product, :url => { :controller => 'product', :action => 'buy'} 做 |f| %>

我的问题就像在 Rails 中同一模型的新视图中附加表单部分 但我不能使用 %input{:name => "model[][name]"} 作为我的输入

可以帮助我如何修复我的代码谢谢~

4

1 回答 1

1

@pruduct是一个错字。让它@product。那能解决吗?

根据评论。

class ProductController < ApplicationController 

  def index
    @products = Product.all 
    @product = Produc.new
  end 

  def buy
    @product = Product.new(product_params)
    respond_to do |format|
      if @product.save
        format.html { redirect_to products_path, notice: 'Product was successfully added.'}
      else
        format.html  do
          @products = Product.all
          flash.now[:error] = 'Failed to add product'
          render action: 'index'
        end
      end
    end
  end
end

必须在失败时更改重定向,因为如果它没有保存您将没有 ID,并且将无法重定向到它。

那么在你index.html.erb 看来

<%= simple_form_for @product, :url => { :controller => 'product', :action => 'buy'} do |f| %>
  <%= f.input :name %>
  <%= f.input :description %>
  <%= f.button :label => 'BUY', :class => 'btn add-product btn-primary' %>
<% end %>

<% @products.each do |product| %>
  <%= product.name %>
  <%= product.description %>
<% end %>

我认为这应该满足你的要求。

于 2013-09-04T11:23:35.383 回答