Rails вызывает удаленный контроллер - PullRequest
0 голосов
/ 09 января 2020

Basi c Проблема с Rails: у меня есть метод контроллера с именем fetch_headlines, который я пытался отладить. Я делаю изменения в контроллере, и они не отражаются на выходе. Это заставило меня думать, что Rails неправильно вызывает fetch_headlines. Обратите внимание на консоль ниже.

Puma starting in single mode...
* Version 3.12.1 (ruby 2.6.1-p33), codename: Llamas in Pajamas
* Min threads: 5, max threads: 5
* Environment: development
* Listening on tcp://localhost:3000
Use Ctrl-C to stop
Started GET "/entries/fetch_headlines" for ::1 at 2020-01-08 16:03:03 -0500
   (0.6ms)  SELECT "schema_migrations"."version" FROM "schema_migrations" ORDER BY "schema_migrations"."version" ASC
  ↳ /Users/ed/.rvm/gems/ruby-2.6.1/gems/activerecord-5.2.3/lib/active_record/log_subscriber.rb:98
Processing by EntriesController#show as HTML
  Parameters: {"id"=>"fetch_headlines"}
  Rendering entries/show.html.erb within layouts/application
  Rendered entries/show.html.erb within layouts/application (2.8ms)
Completed 200 OK in 482ms (Views: 476.3ms | ActiveRecord: 0.0ms)

Кроме того, Rails демонстрирует то же поведение, если я запрашиваю методы, которые не существуют, такие как: qwertyqwerty. Я бы ожидал, что Rails выдаст ошибку.

Started GET "/entries/qwertyqwerty" for ::1 at 2020-01-09 05:59:13 -0500
Processing by EntriesController#show as HTML
  Parameters: {"id"=>"qwertyqwerty"}
  Rendering entries/show.html.erb within layouts/application
  Rendered entries/show.html.erb within layouts/application (0.6ms)
Completed 200 OK in 18ms (Views: 17.1ms | ActiveRecord: 0.0ms)

Вот мои маршруты. Rb

get 'fetch_headlines', to: 'entries#fetch_headlines'
  resources :entries
  resources :keywords
  resources :networks

Спасибо.

1 Ответ

3 голосов
/ 09 января 2020

Вы ставите get 'fetch_headlines', to: 'entries#fetch_headlines', он создает /fetch_headlines вместо /entries/fetch_headlines маршрута. Вам нужно что-то вроде этого:

get 'entries/fetch_headlines', to 'entries#fetch_headlines'

или даже лучше

resources :entries do
  collection do
    get :fetch_headlines
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...