Ruby on rails 轨道形式_,用于命名器

Ruby on rails 轨道形式_,用于命名器,ruby-on-rails,activerecord,migration,Ruby On Rails,Activerecord,Migration,我正在尝试在rails应用程序中使用erb生成表单。我不断得到.html.erb文件第3行的命名错误。下面是迁移、控制器、模型和.html.erb 错误为“未定义的方法`class\u projects\u path'” 迁移: class CreateClassProjects < ActiveRecord::Migration def change create_table :class_projects do |t| t.string :name

我正在尝试在rails应用程序中使用erb生成表单。我不断得到.html.erb文件第3行的命名错误。下面是迁移、控制器、模型和.html.erb

错误为“未定义的方法`class\u projects\u path'”

迁移:

class CreateClassProjects < ActiveRecord::Migration  
  def change  
    create_table :class_projects do |t|  
      t.string :name  
      t.text :description  
      t.text :summary  
      t.text :github  
      t.text :other_url  

      t.timestamps  
    end  
  end  
end  

感谢您的帮助,inb4学习编写nub代码,使用搜索功能nub等等。

您没有定义资源路由,因此您的表单需要额外的配置

<%= form_for @class_project, url: new_path do |f| %

您没有定义资源路由,因此表单需要额外的配置

<%= form_for @class_project, url: new_path do |f| %

您没有定义资源路由,因此表单需要额外的配置

<%= form_for @class_project, url: new_path do |f| %

您没有定义资源路由,因此表单需要额外的配置

<%= form_for @class_project, url: new_path do |f| %

您需要使用以下各项:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
这意味着您将能够使用以下功能:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
#app/controllers/class_projects_controller.rb
类ClassProjectsController<应用程序控制器
def新
@class_project=ClassProject.new
结束
结束
#app/views/class_projects/new.html.erb
...
--

路线

您的问题是,您没有为
class\u项目
对象声明完整的路由。Rails运行()路由系统,这意味着如果您调用
resources
指令,您将获得完整的CRUD路由结构:

这意味着,如果您为
(它基于您提供的对象构建路由)使用诸如
form_之类的帮助器,则必须设置此CRUD补充路由


如上所述定义路由文件将使您能够为
帮助程序调用
表单,\u而不受惩罚(且无额外参数)

您需要使用以下选项:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
这意味着您将能够使用以下功能:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
#app/controllers/class_projects_controller.rb
类ClassProjectsController<应用程序控制器
def新
@class_project=ClassProject.new
结束
结束
#app/views/class_projects/new.html.erb
...
--

路线

您的问题是,您没有为
class\u项目
对象声明完整的路由。Rails运行()路由系统,这意味着如果您调用
resources
指令,您将获得完整的CRUD路由结构:

这意味着,如果您为
(它基于您提供的对象构建路由)使用诸如
form_之类的帮助器,则必须设置此CRUD补充路由


如上所述定义路由文件将使您能够为
帮助程序调用
表单,\u而不受惩罚(且无额外参数)

您需要使用以下选项:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
这意味着您将能够使用以下功能:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
#app/controllers/class_projects_controller.rb
类ClassProjectsController<应用程序控制器
def新
@class_project=ClassProject.new
结束
结束
#app/views/class_projects/new.html.erb
...
--

路线

您的问题是,您没有为
class\u项目
对象声明完整的路由。Rails运行()路由系统,这意味着如果您调用
resources
指令,您将获得完整的CRUD路由结构:

这意味着,如果您为
(它基于您提供的对象构建路由)使用诸如
form_之类的帮助器,则必须设置此CRUD补充路由


如上所述定义路由文件将使您能够为
帮助程序调用
表单,\u而不受惩罚(且无额外参数)

您需要使用以下选项:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
这意味着您将能够使用以下功能:

#config/routes.rb
resources :class_projects
#app/controllers/class_projects_controller.rb
class ClassProjectsController < ApplicationController
   def new
      @class_project = ClassProject.new
   end
end

#app/views/class_projects/new.html.erb
<%= form_for @class_project do |f| %>
   ...
<% end %>
#app/controllers/class_projects_controller.rb
类ClassProjectsController<应用程序控制器
def新
@class_project=ClassProject.new
结束
结束
#app/views/class_projects/new.html.erb
...
--

路线

您的问题是,您没有为
class\u项目
对象声明完整的路由。Rails运行()路由系统,这意味着如果您调用
resources
指令,您将获得完整的CRUD路由结构:

这意味着,如果您为
(它基于您提供的对象构建路由)使用诸如
form_之类的帮助器,则必须设置此CRUD补充路由


如上所述定义路由文件将使您能够为
帮助程序调用
表单,\u而不受惩罚(且无额外参数)

路由应更改为创建路径他将其路由命名为:“新建”
好的,我猜他需要另一条路线来创建postRoute应该更改为创建路径他将他的路线命名为:“new”
好的,我猜他需要另一条路线来创建postRoute应该更改为创建路径他将他的路线命名为:“new”
好的,好的,我猜他需要另一条路径来发送邮件,应该将其更改为创建路径。他将他的路径命名为:“new”
好吧,我猜他需要另一条路径来发送邮件。谢谢,我添加了:url=>“new”作为参数,以便在方法调用的表单中覆盖默认的表单操作。你太棒了!谢谢,我添加了:url=>'new'作为一个参数,以覆盖表单_for方法调用中的默认表单操作。你太棒了!谢谢,我添加了:url=>'new'作为一个参数,以覆盖表单_for方法调用中的默认表单操作。你太棒了!谢谢,我添加了:url=>'new'作为一个参数,以覆盖表单_for方法调用中的默认表单操作。你太棒了!