jfe*_*ust 4 ruby-on-rails devise
我有一个User和一个Rep模型
devise_for :users, :controllers => {:registrations => 'user_registration'}
devise_for :reps
Run Code Online (Sandbox Code Playgroud)
我跑了
rails generate devise:views reps
Run Code Online (Sandbox Code Playgroud)
自定义视图显示在app/views/reps中
但是rep路径仍然使用内置的设计视图
渲染〜/ .rvm /宝石/红宝石1.9.2-P290 /宝石/设计-1.4.9 /应用/视图/设计/注册/ edit.html.erb
而不是生成的代表视图.
Joh*_*ing 26
我有同样的问题.我最终在文档中发现了这一点.
如果您的应用程序中有多个角色(例如"用户"和"管理员"),您会注意到Devise对所有角色使用相同的视图.幸运的是,Devise提供了一种自定义视图的简便方法.您需要做的就是在"config/initializers/devise.rb"中设置"config.scoped_views = true".
所以我将config.scoped_views切换为true,它有一个魅力:)
只需将视图放在那里,Devise就不会使用它们.您需要指向Devise::RegistrationsController具有这些视图的右侧控制器,您可以通过调用此方法来执行此操作:
devise_for :reps, :controllers => { :registrations => "reps/registrations" }
Run Code Online (Sandbox Code Playgroud)
这需要在app/controllers/reps/registrations_controller.rb以下位置定义新的控制器:
class Reps::RegistrationsController < Devise::RegistrationsController
end
Run Code Online (Sandbox Code Playgroud)
然后,您将在右侧目录中拥有该控制器使用的视图.
| 归档时间: |
|
| 查看次数: |
2749 次 |
| 最近记录: |