Я просматриваю учебник Майкла Hartl Ruby on Rails и получаю сообщение об ошибке в файле route.rb.
Это мой код в route.rb
Rails.application.routes.draw do
get 'users/new'
match '/signup', :to => 'users#new'
match '/contact', :to => 'pages#contact'
match '/about', :to => 'pages#about'
match '/help', :to => 'pages#help'
root :to => 'pages#home'
end
И это ошибка, которую я получаю:
You should not use the `match` method in your router without specifying an HTTP method. (ArgumentError)
If you want to expose your action to both GET and POST, add `via: [:get, :post]` option.
If you want to expose your action to GET, use `get` in the router:
Instead of: match "controller#action"
Do: get "controller#action"
Я сбит с толку. Должен ли я использовать get «controller#action» или match? И какой правильный код при использовании match?
1
VeronikaS
10 Апр 2020 в 11:16
1
Согласно сообщениям об ошибках и документам, вам потребуется еще один параметр для http глагол (ы).
– Tpojka
10 Апр 2020 в 11:27
1 ответ
Да, вы должны использовать get
или указать match '/signup', :to => 'users#new', via: :get
. В основном это то, что говорит ошибка.
Вы можете проверить документы: Rails Routing from the Outside In
2
Yurii
10 Апр 2020 в 11:29
Спасибо, это сработало. Я использовал via: [:get], что также выдавало ошибку
– VeronikaS
10 Апр 2020 в 13:21
Вы можете использовать варианты
– via: :get
или via: [:get]
Yurii
11 Апр 2020 в 08:26
Похожие вопросы
Новые вопросы
ruby-on-rails
Ruby on Rails - это полнофункциональная платформа веб-приложений с открытым исходным кодом, написанная на Ruby. Он следует популярной модели фреймворка MVC и известен своим подходом «соглашение поверх конфигурации» при разработке приложений.