导轨脚手架不是复数生成

时间:2015-02-21 17:49:21

标签: ruby-on-rails scaffolding

我想生成一个脚手架控制器,视图和帮助器命名为没有pluraled one,但是奇异的。但是,我得到了如下所示的命名文件。我知道它们基于rails约定,但我只想创建一个字典页面。

$ rails generate scaffold_controller dictionary
  create  app/controllers/dictionaries_controller.rb
  invoke  erb
  create    app/views/dictionaries
  create    app/views/dictionaries/index.html.erb
  create    app/views/dictionaries/edit.html.erb
  create    app/views/dictionaries/show.html.erb
  create    app/views/dictionaries/new.html.erb
  create    app/views/dictionaries/_form.html.erb
  invoke  helper
  create    app/helpers/dictionaries_helper.rb

所以,我的问题是"有没有更好的方法或最短的方法来通过命令生成一个单一的命名控制器/视图/帮助文件?"

我想要的只是下面。我想知道我是否应该手动制作文件?

  app/controllers/dictionary_controller.rb
  app/views/dictionary/index.html.erb
  app/helpers/dictionary_helper.rb

2 个答案:

答案 0 :(得分:3)

有一条铁路可以执行此操作,您可以使用inflections来记录此类例外情况:

<强>配置/初始化/是inflections.rb

ActiveSupport::Inflector.inflections do |inflect|
  inflect.uncountable "dictionary"
end

答案 1 :(得分:1)

在没有搞乱任何东西的情况下,您可以使用resource代替resources more about that here来设置路线

您仍将使用多个控制器名称(如果您需要处理),但URL将是单数,并且您将不会执行复数resources之类的所有操作(更多关于链接中的操作) ),如果您只想要一个页面,那么使用only: :show

进行限制
resource :dictionary, only: :show

然后你甚至不需要控制器,只需创建文件dictionaries/show.html.haml(或erb)它就可以了

http://example.com/dictionary