在Rails 4中为脚手架控制器自动生成路由?

时间:2014-10-26 00:44:08

标签: ruby-on-rails ruby ruby-on-rails-4 routes scaffolding

我正在努力为一个已经掌握了数据模型的应用程序提供一个快速而肮脏的Ajax UI - 它基本上是通过rails console进行管理的。无论如何,我认为我会首先自动生成您从rails g scaffold获得的缺失控制器逻辑,而只使用rails g scaffold_controller来获取现有控制器。

它创建了控制器,视图和资产..但它根本没有触及路线!它甚至没有尝试,没有说“警告:routes.rb已被修改,没有改变”或类似的东西,并且在rails g scaffold_controller的帮助输出中根本没有提到路径。

那么我该怎么说呢:“如果我从头开始,请给我一些你给我的正常路线!”?

2 个答案:

答案 0 :(得分:2)

如果我理解这个问题:

请打开config / routes.rb文件,然后在块(routes.draw)中添加带有表名(复数模型)作为参数的resources方法。像这样:

MyApp::Application.routes.draw do
  resources :products
  ... # rest of code
end

定义RESTful操作对产品的路由。您可以阅读更多here

在控制台上,您可以运行:rake routes以查看应用中的可用路线。

答案 1 :(得分:1)

尽管很久以前这是在问Rails 4,但是有了Rails 5,rails g scaffold_controller仍然不会自动生成路由,我在下面的猴子补丁中做到了:

require 'rails/generators/rails/scaffold_controller/scaffold_controller_generator'

patcher = Module.new do
  extend ActiveSupport::Concern

  included do
    hook_for :resource_route, required: true
  end
end

Rails::Generators::ScaffoldControllerGenerator.send :include, patcher