【问题标题】:How do I create a user read with devise?如何使用设计创建用户阅读?
【发布时间】:2012-06-11 23:41:17
【问题描述】:

我正在使用 Rails、iOS 和设计。我想阅读单个用户。路径是 users/:id。

我收到以下错误:

Started GET "/users/0" for 127.0.0.1 at 2012-06-11 17:37:50 -0600
Processing by UsersController#show as JSON
  Parameters: {"id"=>"0"}
[Devise] Could not find devise mapping for path "/users/0".
Maybe you forgot to wrap your route inside the scope block? For example:

devise_scope :user do
  match "/some/route" => "some_devise_controller"
end

Completed 500 Internal Server Error in 0ms

AbstractController::ActionNotFound (Could not find devise mapping for path "/users/0".
Maybe you forgot to wrap your route inside the scope block? For example:

devise_scope :user do
  match "/some/route" => "some_devise_controller"
end

我尝试将资源 :users 放在 devise_for :users 下,并获取 "users/:id" => "users#show" 并匹配 "users/:id" => "users#show"。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails devise crud


    【解决方案1】:

    这是我的最终解决方案:

    devise_for :users, :controllers => { :registrations => "users"}
    
    devise_scope :user do
      get "users/:id" => "users#show"
    end
    

    【讨论】:

      【解决方案2】:

      查看文档中名为“配置路由”的部分:

      https://github.com/plataformatec/devise#readme

      答案也部分包含在错误消息中。

      至于为什么 devise_for 似乎胜过 routes.rb 中那条线以下的路线,请查看指南:

      http://guides.rubyonrails.org/routing.html#crud-verbs-and-actions

      Rails 路由按照它们指定的顺序匹配,所以如果你 有资源 :photos above a get 'photos/poll' the show action's 资源行的路线将在获取行之前匹配。到 解决这个问题,将 get 行移到资源行上方,使其成为 首先匹配。

      【讨论】:

        猜你喜欢
        • 2011-08-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多