【发布时间】:2020-04-04 07:48:11
【问题描述】:
我有这样的视图 "app/views/admin/index.html.haml" ,在我创建的这个文件中
.container
.d-flex.flex-column.justify-content-center
= render partial: 'add_product'
我渲染另一个partial 用于创建产品
我在管理目录"app/views/admin/_add_product.html.haml" 上创建另一个部分:
.p-2
.d.flex.flex-column.justify-content-center
= form_for(@product) do |f|
.form-group.row
= f.label :name, class: 'col-sm-2 col-form-label'
%br/
.col-sm-10
= f.text_field :name, class: 'form-control'
关于产品控制器"app/controller/products_controller.rb":
class ProductsController < ApplicationController
def index
end
def new
@product = Product.new
end
def create
@product = Product.new product_values
end
private
def product_values
params.require(:product).permit(:name, :stock, :image, :price, :desc)
end
end
所以当我转到“/admin”的路线时,似乎没有创建“表单”
它说:First argument in form cannot contain nil or be empty
问题出在_add_product.html.haml,它没有读取我在控制器上创建的@product 的值,
知道如何在控制器上使用不同的视图吗??
在我的路线上:
resources :products
【问题讨论】:
-
所以你点击
/admin,控制器操作在哪里?你需要在那里定义@product。 -
我可以不用管理员的控制器来做这个吗,我想用产品控制器来定义这个??
标签: ruby-on-rails ruby