【问题标题】:Member Routes with Devise带有设计的成员路由
【发布时间】:2011-05-17 16:30:54
【问题描述】:

当我使用自己的自定义身份验证系统时,我有这些路线:

resources :users do
  member do
    get :following, :followers
  end
end

现在我需要切换到:

devise_for :users

如何将这些成员路由与 Devise 合并?

【问题讨论】:

  • 我想我需要澄清一下:当尘埃落定时,您希望拥有哪些路线?一些来自设计,一些来自您的用户?还是全部来自设计?
  • 我想要 /following 和 /followers 成员路线。它可以来自用户,但我不想要设计句柄的所有其他用户路由(新建、编辑等)。另一方面,我可以从设计中制作它们并一起摆脱用户。

标签: ruby-on-rails ruby-on-rails-3 routing routes devise


【解决方案1】:

您可以使用 match 或 get 并根据需要单独指定这些路由。

#routes.rb
devise_for :users
match '/users/:id/following', :to => 'users#following'   #or your route
match '/users/:id/followers', :to => 'users#followers'   #or your route

或者,您可以为某些操作指定资源丰富的路线,但似乎您想对所有事情都使用设计。据我所知,devise 不会自动创建索引来查看所有注册用户,所以我通常最终会这样做:

#routes.rb
devise_for :users
resources  :users, :only => [:index, :show] do
  member do
    get :following, :followers
  end
end

这是你的想法吗?路由大多数用户操作来设计,但在您自己的用户控制器中保留索引、显示、关注等。

【讨论】:

  • 我也做过同样的问题。我已经按照 routes.rb 的 2. 示例中的建议完成了,但是 rake routes 出于某种原因将其解释为收集操作,即使它包含在 member do 块中?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多