Ruby on rails 简单Rails表单:未定义的方法“categories\u path';
作为Rails的第一次用户,我不得不说我喜欢Rails的工作方式。然而,我在尝试创建一个简单表单时遇到了一个问题。我得到以下错误:Ruby on rails 简单Rails表单:未定义的方法“categories\u path';,ruby-on-rails,forms,Ruby On Rails,Forms,作为Rails的第一次用户,我不得不说我喜欢Rails的工作方式。然而,我在尝试创建一个简单表单时遇到了一个问题。我得到以下错误: undefined method `categories_path' for #<#<Class:0x007f0440365880>:0x007f0430256cd8> routes.rb <%= form_for @category do |f| %> <%= f.label :category %> &l
undefined method `categories_path' for #<#<Class:0x007f0440365880>:0x007f0430256cd8>
routes.rb
<%= form_for @category do |f| %>
<%= f.label :category %>
<%= f.text_field :name %><br />
<%= f.submit %>
<% end %>
Jackeyes::Application.routes.draw do
scope "/admin" do
resources :product, :category
end
end
class CategoryController < ApplicationController
def index
@category = Category.all
end
def new
@category = Category.new
end
def create
@category = Category.new(params[:category])
@category.save
end
end
类别控制器.rb
<%= form_for @category do |f| %>
<%= f.label :category %>
<%= f.text_field :name %><br />
<%= f.submit %>
<% end %>
Jackeyes::Application.routes.draw do
scope "/admin" do
resources :product, :category
end
end
class CategoryController < ApplicationController
def index
@category = Category.all
end
def new
@category = Category.new
end
def create
@category = Category.new(params[:category])
@category.save
end
end
class CategoryController
让您的资源成为复数:
resources :products, :categories
然后重试。将您的资源设为复数:
resources :products, :categories
然后再试一次。谢谢!这样做了,现在我得到了这个错误:
没有路由匹配[GET]“/admin/category/new”
。我需要单数和复数吗?@David Rails的方式是/admin/categories/new
。确保已重新启动应用程序。你的路径助手会尊重你的新路径(我希望你没有硬编码链接)。啊,对了。好的,我转到了/admin/categories/new
,我得到了一个路由错误:未初始化的常量CategoriesController
。你知道那可能是什么吗?哦,我的控制器也应该是复数的,即使型号名称是单数的吗?@David是的,这是一样的:你没有遵守惯例。您必须有类别控制器
,但您有类别控制器
。将文件从category\u controller.rb
重命名为categories\u controller.rb
。对全班同学也这样做。模型必须是单数的,以便生成可读的句子,因为产品有很多:订单。试着把它读成产品
,你会很困惑)谢谢!这样做了,现在我得到了这个错误:没有路由匹配[GET]“/admin/category/new”
。我需要单数和复数吗?@David Rails的方式是/admin/categories/new
。确保已重新启动应用程序。你的路径助手会尊重你的新路径(我希望你没有硬编码链接)。啊,对了。好的,我转到了/admin/categories/new
,我得到了一个路由错误:未初始化的常量CategoriesController
。你知道那可能是什么吗?哦,我的控制器也应该是复数的,即使型号名称是单数的吗?@David是的,这是一样的:你没有遵守惯例。您必须有类别控制器
,但您有类别控制器
。将文件从category\u controller.rb
重命名为categories\u controller.rb
。对全班同学也这样做。模型必须是单数的,以便生成可读的句子,因为产品有很多:订单。试着把它读作产品
,你会非常困惑)