【问题标题】:Ruby on rails: devise problemRuby on rails:设计问题
【发布时间】:2011-10-07 19:28:33
【问题描述】:

我在views/posts/index.html.erb中有这个

    <% if user_signed_in? %>        
      <%= link_to('Logout', destroy_user_session_path, :method => 'delete') %>
    <% else %>
      <%= link_to('Login', new_user_session_path)  %>
    <% end %>

类 PostsController

类用户控制器

耙路线:

        new_user_session GET    /usuarios/login(.:format)                   {:action=>"new", :controller=>"devise/sessions"}
            user_session POST   /usuarios/login(.:format)                   {:action=>"create", :controller=>"devise/sessions"}
    destroy_user_session DELETE /usuarios/logout(.:format)                  {:action=>"destroy", :controller=>"devise/sessions"}
           user_password POST   /usuarios/secret(.:format)                  {:action=>"create", :controller=>"devise/passwords"}
       new_user_password GET    /usuarios/secret/new(.:format)              {:action=>"new", :controller=>"devise/passwords"}
      edit_user_password GET    /usuarios/secret/edit(.:format)             {:action=>"edit", :controller=>"devise/passwords"}
                         PUT    /usuarios/secret(.:format)                  {:action=>"update", :controller=>"devise/passwords"}
cancel_user_registration GET    /usuarios/register/cancel(.:format)         {:action=>"cancel", :controller=>"devise/registrations"}
       user_registration POST   /usuarios/register(.:format)                {:action=>"create", :controller=>"devise/registrations"}
   new_user_registration GET    /usuarios/register/cmon_let_me_in(.:format) {:action=>"new", :controller=>"devise/registrations"}
  edit_user_registration GET    /usuarios/register/edit(.:format)           {:action=>"edit", :controller=>"devise/registrations"}
                         PUT    /usuarios/register(.:format)                {:action=>"update", :controller=>"devise/registrations"}
                         DELETE /usuarios/register(.:format)                {:action=>"destroy", :controller=>"devise/registrations"}
                   posts GET    /posts(.:format)                            {:action=>"index", :controller=>"posts"}
                         POST   /posts(.:format)                            {:action=>"create", :controller=>"posts"}
                new_post GET    /posts/new(.:format)                        {:action=>"new", :controller=>"posts"}
               edit_post GET    /posts/:id/edit(.:format)                   {:action=>"edit", :controller=>"posts"}
                    post GET    /posts/:id(.:format)                        {:action=>"show", :controller=>"posts"}
                         PUT    /posts/:id(.:format)                        {:action=>"update", :controller=>"posts"}
                         DELETE /posts/:id(.:format)                        {:action=>"destroy", :controller=>"posts"}
                                /posts/:id/categ(.:format)                  {:controller=>"posts", :action=>"categ"}
                                /posts/:id/tag_posts(.:format)              {:controller=>"posts", :action=>"tag_posts"}
     posts_searcharchive        /posts/searcharchive(.:format)              {:controller=>"posts", :action=>"searcharchive"}
              categories GET    /categories(.:format)                       {:action=>"index", :controller=>"categories"}
                         POST   /categories(.:format)                       {:action=>"create", :controller=>"categories"}
            new_category GET    /categories/new(.:format)                   {:action=>"new", :controller=>"categories"}
           edit_category GET    /categories/:id/edit(.:format)              {:action=>"edit", :controller=>"categories"}
                category GET    /categories/:id(.:format)                   {:action=>"show", :controller=>"categories"}
                         PUT    /categories/:id(.:format)                   {:action=>"update", :controller=>"categories"}
                         DELETE /categories/:id(.:format)                   {:action=>"destroy", :controller=>"categories"}
                comments GET    /comments(.:format)                         {:action=>"index", :controller=>"comments"}
                         POST   /comments(.:format)                         {:action=>"create", :controller=>"comments"}
             new_comment GET    /comments/new(.:format)                     {:action=>"new", :controller=>"comments"}
            edit_comment GET    /comments/:id/edit(.:format)                {:action=>"edit", :controller=>"comments"}
                 comment GET    /comments/:id(.:format)                     {:action=>"show", :controller=>"comments"}
                         PUT    /comments/:id(.:format)                     {:action=>"update", :controller=>"comments"}
                         DELETE /comments/:id(.:format)                     {:action=>"destroy", :controller=>"comments"}
              countpages GET    /countpages(.:format)                       {:action=>"index", :controller=>"countpages"}
                         POST   /countpages(.:format)                       {:action=>"create", :controller=>"countpages"}
           new_countpage GET    /countpages/new(.:format)                   {:action=>"new", :controller=>"countpages"}
          edit_countpage GET    /countpages/:id/edit(.:format)              {:action=>"edit", :controller=>"countpages"}
               countpage GET    /countpages/:id(.:format)                   {:action=>"show", :controller=>"countpages"}
                         PUT    /countpages/:id(.:format)                   {:action=>"update", :controller=>"countpages"}
                         DELETE /countpages/:id(.:format)                   {:action=>"destroy", :controller=>"countpages"}
                    root        /(.:format)                                 {:controller=>"posts", :action=>"index"}

在 routes.rb 中:

  devise_for :users, :path => "usuarios", :path_names => { :sign_in => 'login', :sign_out => 'logout', :password => 'secret', :confirmation => 'verification', :unlock => 'unblock', :registration => 'register', :sign_up => 'cmon_let_me_in' }

我收到错误:

ActionController::RoutingError in Devise/sessions#new

显示第 16 行出现的 app/views/layouts/application.html.erb:

没有路线匹配 {:controller=>"devise/posts"}

这是 root: root :to => "posts#index" ,当我点击 http://0.0.0.0:3000 时,它会重定向到 http://0.0.0.0:3000/usuarios/login 并收到此错误,

app/views/layouts/application.html.erb:16:in `_app_views_layouts_application_html_erb__647429696_90155120__982654953'

【问题讨论】:

  • 错误来自application.html.erb。您能否也发布该文件的内容?
  • application.html.erb 没问题,pastebin.com/Nka2j54e
  • 我不知道为什么 0% 接受。如果已回答,我将其标记为已回答。
  • 我认为您的 application.html.erb 的 pastebin 链接格式错误。此外,查看您提出的问题,您实际上确实正确回答了未接受的问题 - stackoverflow.com/questions/6652196
  • 您需要向我们展示 application.html.erb 的第 16 行

标签: ruby-on-rails devise


【解决方案1】:

问题是因为您更改了用户的默认路由:devise_for :users, :path =&gt; "usuarios", 我的意思是,现在您的所有路由都将是 _usuario_ 即:

<% if usuario_signed_in? %>        
      <%= link_to('Logout', destroy_usuario_session_path %>
    <% else %>.....

【讨论】:

  • 啊?没有路线匹配 {:controller=>"devise/posts"} ,您在这段代码中的哪个位置调用它? ,我认为在其他文件中您有此错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-11-14
  • 2014-04-24
  • 2011-10-11
  • 2016-06-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多