Ruby on rails 简单Rails表单:未定义的方法“categories\u path';

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

作为Rails的第一次用户,我不得不说我喜欢Rails的工作方式。然而,我在尝试创建一个简单表单时遇到了一个问题。我得到以下错误:

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
。对全班同学也这样做。模型必须是单数的,以便生成可读的句子,因为产品有很多:订单。试着把它读作
产品
,你会非常困惑)