【发布时间】:2014-03-28 04:52:05
【问题描述】:
Ruby on Rails 3.2
我的 sessions_controller.rb 会检查 'signed_in_person' 以绕过登录(如果他们已经有记录的会话)。
我的 'signed_in_person' 是在 session_helper.rb 中定义的,但我得到一个错误:
Started POST "/sessions" for 50.241.102.227 at 2014-02-25 10:12:33 -0800
Processing by SessionsController#create as HTML
Parameters: {"utf8"=>"✓", "authenticity_token"=>"fFo4EM1MOHNO1Thic6qA/uapGj8pbiNaepKYF5Ge0Tw=", "session"=>{"email"=>"dduck@blah.com", "password"=>"[FILTERED]"}, "com
mit"=>"Sign in"}
Person Load (0.1ms) SELECT `persons`.* FROM `persons` WHERE `persons`.`email` = 'dduck@blah.com' LIMIT 1
Completed 500 Internal Server Error in 66ms
NoMethodError (undefined method `sign_in_person' for #<SessionsController:0x00000004f7ace8>):
app/controllers/sessions_controller.rb:11:in `create'
从控制台检查时,Person 位于数据库表中。 我的会话控制器:
def create
if params[:session][:email].include? 'blah.com'
person = Person.find_by_email(params[:session][:email].downcase)
if person && person.authenticate(params[:session][:password])
sign_in_person person
redirect_back_or person
else
flash.now[:error] = 'Invalid email/password combination'
render 'new'
end
else
...
end
end
我的 session_helper:
module SessionsHelper
# For Persons
def sign_in_person(person)
cookies[:remember_token] = person.remember_token
self.current_person = person
end
def signed_in_person?
!current_person.nil?
end
...
关于为什么我的 session_helper 没有帮助的任何想法?
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-3