我有一个模型产品,我想在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的未定义方法`model_name':Class
在此&lt;%= simple_form_for @product中,:url =&gt; {:controller =&gt; 'product',:action =&gt; '买'}做| f | %GT;
我的问题就像Append form partial in the new view of the same model in rails 但我不能使用%input {:name =&gt; “model [] [name]”}是我的输入
可以帮助我修复代码 感谢〜
答案 0 :(得分: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 %>
我认为应该按照你的要求做。