[英]Ruby on Rails - Devise Error
我和Devise發生了一個奇怪的錯誤。 當我加載主頁時,它不喜歡這段代碼:
<% if signed_in? %><p>Welcome back,
<%= current_user.first_name %> <%= current_user.last_name %></p><% end %>
因為它說:
undefined method `encrypt' for #<Class:0x3720300>
我在我的應用程序中搜索了“encrypt”,它返回的是我的sessions_helper.rb:
module SessionsHelper
def sign_in(user)
remember_token = User.new_remember_token
cookies.permanent[:remember_token] = remember_token
user.update_attribute(:remember_token, User.encrypt(remember_token))
self.current_user = user
end
def signed_in?
!current_user.nil?
end
def sign_out
current_user.update_attribute(:remember_token, User.encrypt(User.new_remember_token))
cookies.delete(:remember_token)
self.current_user = nil
end
def current_user=(user)
@current_user = user
end
def current_user
remember_token = User.encrypt(cookies[:remember_token])
@current_user ||= User.find_by(remember_token: remember_token)
end
end
這是什么意思? 我需要重新安裝嗎?
如果我沒有錯,那么您正在關注Michael Hartl的Rails教程,因為您的代碼類似於它。 如果那是真的那么,你需要在User
模型中添加一個類方法encrypt
class User < ActiveRecord::Base
...
def User.encrypt(token)
Digest::SHA1.hexdigest(token.to_s)
end
...
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.