Подтвердить что ты не робот

То же Rails 4 маршрута для запросов GET и POST

В Rails 3 Match используется для указания на действие как для "GET" , так и "POST" и других типов запросов.

match "user/account" => user#account

Теперь это укажет на действие учетной записи пользовательского контроллера для запросов GET и POST. Как и в Rails 4 "совпадение" устарело, можем ли мы создать тот же маршрут для GET и POST в Rails 4?

4b9b3361

Ответ 1

Вы можете использовать совпадение, если у вас есть via:

match "user/account" => "user#account", as: :user_account, via: [:get, :post]

Изменить: добавлен параметр as:, чтобы он был доступен через помощник URL. user_account_path или user_account_url в этом случае.

Ответ 2

В маршрутах метод сопоставления больше не будет действовать как опция catch-all. Теперь вы должны указать, какой HTTP-глагол отвечать с помощью опции: через

Rails 3.2

match "/users/:id" => "users#show"

Rails 4.0

match "/users/:id" => "users#show", via: :get

или указать несколько глаголов

match "/users" => "users#index", via: [:get, :post]

Другим вариантом лучшей совместимости Rails 3.2 является просто указать ваши действия с явным get, post или любым другим HTTP-глаголом. С помощью этой опции вы по-прежнему получаете свой код, работающий сегодня, и в будущем подтвердите его для обновления.

Совместимость с Rails 3.2 и 4.0

get "/users/:id" => "users#show"

несколько глаголов

get "/users" => "users#index"
post "/users" => "users#index"