Рельсы эшафот не во множественном числе генерируют
Я хотел бы сгенерировать scaffolded-контроллер, view и помощник, названный не единичным, а единичным. Как бы то ни было, я получил несколько именованных файлов, как показано ниже. Я знаю, что они основаны на соглашении о рельсах, но я просто хотел бы создать страницу словаря.
$ 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
Итак, мой вопрос: "Есть ли лучший способ или кратчайший способ генерировать единственные именованные файлы controller/view/helper по команде?"
То, что я хочу, это чуть ниже. Мне интересно, если я должен сделать файлы вручную?
app/controllers/dictionary_controller.rb
app/views/dictionary/index.html.erb
app/helpers/dictionary_helper.rb
2 ответа
Есть рельсовый путь сделать это, вы можете использовать inflections
документировать такие исключения:
конфиг / Инициализаторы /inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.uncountable "dictionary"
end
Ну, не связываясь ни с чем в рельсах, вы можете настроить маршруты, используя resource
вместо resources
подробнее об этом здесь
Вы по-прежнему будете использовать имя контроллера множественного числа (если вам нужно обработать), но URL будет единичным, и у вас не будет всех действий, подобных множественному числу resources
(подробнее об этом в ссылке), если вы просто хотите одну страницу, ограничьте с помощью only: :show
resource :dictionary, only: :show
Тогда вам даже не нужен контроллер, просто создайте файл dictionaries/show.html.haml
(или эрб) и это будет работать
http://example.com/dictionary