无法在 gem Devise 中调整控制器,ruby on rails 4
Posted
技术标签:
【中文标题】无法在 gem Devise 中调整控制器,ruby on rails 4【英文标题】:Can't adjust Controller in gem Devise, ruby on rails 4 【发布时间】:2016-02-11 05:42:27 【问题描述】:我在调整 gem 设计中的控制器时遇到了困难。在https://github.com/plataformatec/devise 上有配置控制器的指南:
使用需要范围的生成器创建您的自定义控制器:
rails generate devise:controllers [范围]
我输入:rails generate devise:controllers users
告诉路由器使用这个控制器:
devise_for :users, controllers: session: "users/sessions"
我在路由中添加了devise_for :users, controllers: sessions: "users/sessions"
-
将视图从设计/会话复制到用户/会话。由于控制器已更改,它不会使用位于设计/会话中的默认视图。
我在 users 中创建了一个名为 sessions 的文件夹,并将视图从 devise/sessions 复制到 users/sessions
4.最后,更改或扩展所需的控制器操作。
此时,我应该可以调整控制器,但没有任何反应。例如,当我这样做时:
registrations/new.html.erb
<h2>Sign up</h2>
<% @user.each do |name|%>
<%= name.username %>
<% end %>
users/registrations_controller.rb
class Users::RegistrationsController < Devise::RegistrationsController
# before_filter :configure_sign_up_params, only: [:create]
# before_filter :configure_account_update_params, only: [:update]
# GET /resource/sign_up
def new
@user = User.all
super
end
# POST /resource
# def create
# super
# end
什么都没有发生。我哪里做错了?您可以在此处访问代码:https://github.com/Metaphysiker/philosophica
提前致谢!
【问题讨论】:
您只是覆盖会话的路由 - 而不是注册。在控制台中运行“rake routes”以查看映射。 【参考方案1】:首先看起来你输入了:
rails generate devise:controllers [users]
[]
中的用户,所以你有一个名为 [users]
的文件夹
您可能想删除它。
但您的实际问题是您没有将视图移动到views/users/session
文件夹views/users
只有一个new.erb。把views/devise
的内容复制到views/users
就可以了。
另外你应该add devise_for :users, controllers: sessions: "users/sessions" , registrations: „users/registrations“
到你的路线.rb
【讨论】:
以上是关于无法在 gem Devise 中调整控制器,ruby on rails 4的主要内容,如果未能解决你的问题,请参考以下文章
Rails, Devise, Postmark Gem - 使用邮戳模板设计邮件
Monkey patching Devise(或任何 Rails gem)
尝试加载 gem 'devise. ActiveSupport:持续时间不能强制转换为整数