Как настроить или изменить маршруты маршрутов в рельсах? - PullRequest
3 голосов
/ 17 октября 2010

Например, рассмотрим следующий вывод из маршрутов рейка: -
posts GET /posts(.:format) {: action => "index",: controller => "posts"}
posts POST /posts(.:format) {: action => "create",: controller => "posts"}
* new_post * GET /posts/new(.:format) {: action => "new",: controller => "posts"}
* edit_post * GET / posts/:id/edit(.:format) {: action => "edit",: controller => "posts"}
post GET / posts /: id (.: format) {: action => "show",: controller => "posts"}

Если я хочу изменить имя пути "new_post" на "create_post", как мне это сделать ??

Ответы [ 4 ]

4 голосов
/ 20 июня 2011

Вы должны оформить заказ railscast для маршрутизации в рельсах.

4 голосов
/ 19 июня 2011

match '/posts/new' => 'posts#new', :as => :create_post в ваших маршрутах должно работать!

2 голосов
/ 02 августа 2013

«Соответствие» здесь не подходит.Это может создать проблему безопасности, потому что по умолчанию он открывает маршрут, который вы соответствует каждому глаголу запроса (получить, отправить и т. Д.).Вы должны либо указать глагол вместо соответствия

get '/posts/new' => 'posts#new', as: :create_post

, либо вы можете указать, какие глаголы вы хотите использовать, используя match

match '/posts/new' => 'posts#new', as: :create_post, via: [:get]    
1 голос
/ 26 апреля 2018

В rails 5 вы можете сделать это как -

get '/create_post', to: 'posts#new'

Вы должны предпочесть http method keywords вместо непосредственного использования match согласно API документам . Также я бы выбрал RESTful маршруты по умолчанию, сгенерированные методом resources в Rails вместо определения всех пользовательских маршрутов REST.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...