当前用户在rails中的ruby中设置了哪个文件?

时间:2014-08-18 10:47:05

标签: ruby-on-rails session-cookies

我是红宝石的新手。我想知道当前用户设置的时间/位置。我知道将为每个URL请求生成cookie。会话详细信息存储在哪里?以及当前用户设置的位置(在哪个文件中)。任何人请简要解释一下。

3 个答案:

答案 0 :(得分:2)

希望您的Rails应用程序中有users表,因此设计将自动加载userscurrent_user表的所有列。

答案 1 :(得分:1)

这一切都取决于你如何实现它。如果您使用像Devise这样的库,它有自己的实现,但通常这些东西存储在加密的Rails会话存储中,并存储在每个请求会话中。控制器只有在current_user被设置为会话中的用户对象后才会验证访问者的cookie。

答案 2 :(得分:0)

我更喜欢它applicaton_controller ..所以我可以检查每个请求上user_signed_in的位置并检查会话..如果它退出然后它的ok else redirect_to登录页面..

例如在application_controller.rb

before_filter :check_current_user


def check_current_user

  if current_user
   #check if current user exists in our session
    session[:current_user_id] = User.find(session[:current_user_id]).id
  else
   #if not ,then create new and set it to the session and return the current_user as u
    session[:current_user_id] = User.create(:username => "guest", :email => "guest_# {Time.now.to_i}#{rand(100)}@example.com")
    u.save!(:validate => false)
    session[:current_user_id] = u.id
    u
  end
end

上面的代码虽然不完美但是我只想展示如何实现current_user以使用会话检查每个请求上的current_user,如果没有current_user作为guest,则将其设置在会话中...