不要在rails生成控制器上创建视图文件夹

时间:2013-08-23 15:18:29

标签: ruby-on-rails ruby

这是一个微不足道的问题,但我很好奇:

运行rails generate controller时,通常的生成器配置是否有办法关闭视图文件夹和操作模板的创建?

我无法在任何地方找到选项,代码here也没有向我显示任何指示。

我们可能会在某些时候为我们的API构建我们自己的控制器/资源生成器,但我很好奇是否有办法在此期间关闭这种烦恼。

4 个答案:

答案 0 :(得分:40)

这不是一个记录良好的功能,但尝试在命令中添加--skip-template-engine(别名--no-template-engine)选项。

rails generate controller foo bar --skip-template-engine
虚拟应用上的

演示:

rails g controller my_controller index show --no-template-engine
      create  app/controllers/my_controller_controller.rb
       route  get "my_controller/show"
       route  get "my_controller/index"
      invoke  test_unit
      create    test/functional/my_controller_controller_test.rb
      invoke  helper
      create    app/helpers/my_controller_helper.rb
      invoke    test_unit
      create      test/unit/helpers/my_controller_helper_test.rb
      invoke  assets
      invoke    coffee
      create      app/assets/javascripts/my_controller.js.coffee
      invoke    scss
      create      app/assets/stylesheets/my_controller.css.scss

答案 1 :(得分:23)

要跳过使用控制器生成的视图,请禁用模板引擎。

<强>一旦:

rails g controller ControllerName action1 action2 --skip-template-engine

请注意,每个--skip选项还有一个别名--no选项。

默认:

# config/application.rb

config.generators do |g|
  g.template_engine false
end

# OR

config.generators.template_engine = false

如果您有一个仅限API的应用程序(没有前端),您可能还希望跳过使用控制器生成的资产和帮助程序。

<强>一旦:

rails g controller api/users --no-helper --no-assets --no-template-engine

默认:

# config/application.rb

config.generators do |g|
  g.assets false
  g.helper false
  g.template_engine false
end

# OR

config.generators.assets = false
config.generators.helper = false    
config.generators.template_engine = false

禁用资源会跳过生成的样式表 javascripts。如果您只想跳过一个,请使用--no-stylesheets--no-javascripts,或使用config/application.rb使用:

config.generators.stylesheets = false
config.generators.javascripts = false

如果您的默认配置会跳过生成的内容(例如资产和帮助程序),但在一种情况下需要它们,您可以像这样生成它们:

rails g controller foo --helper --assets --skip

其中--skip跳过生成已存在的文件。

答案 2 :(得分:5)

我想我会尝试强调--skip-template-engine标志,看看它是否在发电机中起作用,它有魅力!在Rails 4.2应用程序中没有从bin/rails g controller命令生成视图模板。

尝试:

config.generators do |g|
  g.template_engine false
end

我知道的有点晚了,但这些东西在Google中存在! ;)

答案 3 :(得分:1)

如果您正在创建没有前端的API,则可以继续使用rails new --api。但是,如果您计划创建前端(例如单页应用程序),我不建议使用此选项,因为它会关闭很多东西,包括资产管道。