Использование сгенерированных путей с ресурсами в Rails - PullRequest
0 голосов
/ 05 марта 2012

У меня определены следующие маршруты:

CyberTrackRails3::Application.routes.draw do
  scope "(:locale)", :locale => /en|de|nl/ do
    resources :login do
      get 'index', on: :collection
      get 'check', on: :collection
    end
  end
end

Теперь url_for (: controller => 'login',: action => 'check') дает мне правильный URL, en / login / check.

Использование login_check_path, однако, не работает. Как мне сделать эту работу?

Я пытался заменить get 'index' on:: collection на match 'check' => 'check' , но это не работает. также не соответствует 'check' => 'login # check' .

1 Ответ

2 голосов
/ 12 апреля 2012

так как вы добавляете действие к ресурсу, я думаю, что автоматически сгенерированное имя будет изменено на обратное, то есть 'check_logins_path' (см. добавление-больше-остальных-действий )

вам нужен именно login_check_path? если это так, вы сможете определить путь вне ресурсов: блок входа в систему, т.е.

match '/login/check' => 'login#check', :via => :get, :as => 'login_check'

и, как предложил Fivell, rake routes покажет вам автоматически сгенерированное имя для маршрута.

...