我正在使用设计进行身份验证,
我在下面的SessionsController #create方法中的“super”之后放了一些文本,在浏览器中找到“current_user”值(使用better_errors gem)。
class SessionsController < Devise::SessionsController
def new
super
end
def create
super
error_debug
end
def edit
super
end
end
在routes.rb
中root :to => "welcome#index"
我在SessionsController #create中得到了current_user值,就像期望的那样,但是当涉及到迎宾#index时,当前用户值为'nil'。
我无法找到背后的原因,请有人协助我解决此问题。
答案 0 :(得分:0)
首先登录并检入current_user的better_error值
答案 1 :(得分:0)
我检查了日志文件,我发现,错误是
Dall::error server not found
然后我通过sudo apt-get install memcached
安装了memcached。它现在工作正常。有关更多说明,请单击以下链接
答案 2 :(得分:0)
按照以下步骤操作:
gem install 'devise'
rails generate devise:install
rails generate devise User
rake db:migrate
您的路线应该是这样的 devise_for:用户 &GT; root:to =&gt; “家#指数”
更改您的开发配置,将以下行添加到config / environments / development.rb
config.action_mailer.default_url_options = { host: 'localhost:3000' }
将此代码添加到您的控制器
before_filter :authenticate_user!
如果您使用的是rails 4,请将此代码添加到您的应用中
class ApplicationController&lt;的ActionController ::基
before_filter:configure_permitted_parameters,if :: devise_controller?
保护
def configure_permitted_parameters
devise_parameter_sanitizer.for(:sign_up){| u | u.permit({roles:[]},:email,:password,:password_confirmation)}
devise_parameter_sanitizer.for(:sign_in){| u | u.permit(:用户名,:电子邮件)}
端 端
答案 3 :(得分:0)
您的应用程序控制器中是否有protect_from_forgery方法调用?请看这个guides.rubyonrails.org/security.html