Создание ссылок / маршрутов смешивается с моделью без разработки

Я впервые использую Devise в приложении, и у меня возникла странная проблема, которую я не могу понять:

Я создал своего пользователя модель с Devise, и настройте всю регистрацию, регистрацию пользователей и т. д., и все работает нормально. В заголовке моего приложения у меня есть навигационное меню (которое в настоящее время пусто) и часть с входом, выходом и т. Д .:

_header.html.erb

<div class='topbar'>
    <div class='container'>
        <%= link_to 'My app', root_path, :class => 'brand' %>
        <div class='nav'>
        </div>
        <%= render 'layouts/user_options' %>
    </div>
</div>

_user_options.html.erb

<ul class='user-options'>
    <% if user_signed_in? %>
      <li><%= link_to "Signed in as #{current_user.username}", '#' %></li>
      <li><%= link_to "Sign out", destroy_user_session_path, :method => :delete %></li>
    <% else %>
      <li><%= link_to "Sign up", new_user_registration_path %></li>
      <li><%= link_to "Sign in", new_user_session_path %></li>
    <% end %>
</ul>

Теперь я добавление первой ссылки в навигационное меню, если я использую:

<%= link_to 'Tasks', '/tasks/index'  %>

Все нормально. НО если я использую:

<%= link_to 'Tasks', :controller => 'tasks', :action => 'index'  %>

Когда я нажимаю на любую из ссылок Devise, например «Войти», я получаю «Нет совпадений маршрута {: controller =>" devise / tasks "}»

Автор запрос на комментарии, вот результат rake routes: Tasks: TOP => routes => environment (Просмотрите полную трассировку, запустив задачу с --trace) MacBook-Pro-de-o: dearsherpa Oscar $ bundle exec rake routes

             tasks_index GET    /tasks/index(.:format)         {:controller=>"tasks", :action=>"index"}
              tasks_show GET    /tasks/show(.:format)          {:controller=>"tasks", :action=>"show"}
        new_user_session GET    /users/sign_in(.:format)       {:action=>"new", :controller=>"devise/sessions"}
            user_session POST   /users/sign_in(.:format)       {:action=>"create", :controller=>"devise/sessions"}
    destroy_user_session DELETE /users/sign_out(.:format)      {:action=>"destroy", :controller=>"devise/sessions"}
           user_password POST   /users/password(.:format)      {:action=>"create", :controller=>"devise/passwords"}
       new_user_password GET    /users/password/new(.:format)  {:action=>"new", :controller=>"devise/passwords"}
      edit_user_password GET    /users/password/edit(.:format) {:action=>"edit", :controller=>"devise/passwords"}
                         PUT    /users/password(.:format)      {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET    /users/cancel(.:format)        {:action=>"cancel", :controller=>"devise/registrations"}
       user_registration POST   /users(.:format)               {:action=>"create", :controller=>"devise/registrations"}
   new_user_registration GET    /users/sign_up(.:format)       {:action=>"new", :controller=>"devise/registrations"}
  edit_user_registration GET    /users/edit(.:format)          {:action=>"edit", :controller=>"devise/registrations"}
                         PUT    /users(.:format)               {:action=>"update", :controller=>"devise/registrations"}
                         DELETE /users(.:format)               {:action=>"destroy", :controller=>"devise/registrations"}
                    root        /                              {:controller=>"pages", :action=>"home"

и вот routes.rb:

  get "tasks/index"

  get "tasks/show"

  devise_for :users

  root :to => 'pages#home'

Почему это ?? Что я делаю не так?

Edit2 : Кстати, я забыл упомянуть, что Task принадлежит пользователю , а модель User была сгенерирована devise. Что, вероятно, и является причиной этого.Разве я не могу получить доступ к / tasks / index без / user / id / tasks /?

Изменить : более странные вещи, я пробовал использовать ресурсы: задачи в моем файле маршрутов вместо маршрутов get для этого контроллер, и теперь, когда я нажимаю <% = link_to 'Tasks',: controller => 'tasks',: action => 'index'%> , я перехожу к действию show. Так что, видимо, что-то действительно не так с моими маршрутами.

0
задан agente_secreto 8 December 2011 в 00:51
поделиться