如何为rails + devise编写特定的自定义路由?

时间:2015-04-07 14:56:24

标签: ruby ruby-on-rails-4 devise

我正在尝试编写一个自定义路由,指向设计中的自定义控制器操作。

我现在有下面的设置。

# custom controller
class Registrations::RegistrationsController < Devise::RegistrationsController
  layout 'settings'

  # GET /resource/edit
  def edit
    super
  end
end

# routing setup
Rails.application.routes.draw do
    devise_for :users, controllers: { registrations: "registrations/registrations" }, 
                       path_names: { edit: 'profile' }
end

这允许我有一个自定义URL localhost:4000 / users / profile没有问题。

我的问题是如何进一步自定义

本地主机:4000 /简档 本地主机:4000 /设置/配置文件

注意我知道我可以设置path: '' or path: 'settings',但这会影响用户中的所有路线。

有没有办法可以

使用devise_for

localhost:4000 / settings / profile和localhost:4000 / login?

我不确定如何分别控制这些影响。

1 个答案:

答案 0 :(得分:0)

正如我们可以看到here,我们可以使用Rails范围并指定用于“注册”的控制器。像这样:

scope :settings do devise_scope :user do get '/profile' => 'devise/registrations#edit' end end