Мое приложение использует Devise для входа. Я установил его в соответствии с вики и все заработало нормально.Недавно я добавил страницу «Условия предоставления услуг» в свое приложение по адресу «http://127.0.0.1:3000/tos",», оно маршрутизируется через статический контроллер:
match ':action' => 'static#:action'
Я поместил ссылку на него ввнизу моего файла application.html.erb. Я хочу, чтобы ссылка на Условия предоставления услуг и Политику конфиденциальности была внизу каждой страницы. Но когда я перехожу на страницу users/sign_in
, она не отображает ссылку на TOS.страница - вместо этого есть ошибка (ниже).
Я удалил все маршруты в своем приложении, кроме этих (с целью отслеживания этой проблемы):
root :to => 'home#index'
#devise routes
devise_for :users, :admins
#static
match ':action' => 'static#:action'
Ссылка указана примерно так: <%= link_to "Terms of Service", :controller => "static", :action => "tos" %>
Ошибка:
No route matches {:controller=>"devise/static", :action=>"tos"}
Так что Devise как бы мешает моей маршрутизации на эту статическую страницуКак мне указать маршрут для перехода к корню приложения, а не начинать с Devise?
Обновление: в краткосрочной перспективе, ответ заключался в том, чтобы жестко закодировать его: <%= link_to "Terms of Service", "/tos" %>
- не идеальный ответ.