ruby-on-rails - 在 Rails 中获取 session 数据

标签 ruby-on-rails session

我是从 php 开始接触 rails 的新手,我正在使用 mongodb 学习 rails 3。

我已经到了我有一个 html 表单将文本发布到 mongo 的地步,我可以创建并以用户身份登录。

在用户登录中,我创建了一个由 nifty authenticate 创建的 session

session[:user_id] = user.id

现在我试图在创建新帖子时从 session 中获取该 user_id,以便该帖子与用户相关联。

在我的 posts_controller 中,我有如下创建函数。

def create
    @post = Post.new(params[:post])
    respond_to do |format|
      if @post.save
        format.html { redirect_to(@post, :notice => 'Post was successfully created.') }
        format.xml  { render :xml => @post, :status => :created, :location => @post }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @post.errors, :status => :unprocessable_entity }
      end
    end
end

但是,我认为我需要在此处传递 user_id,或者将其放入我的模型中可能会更好。

但是尝试任何一种

@user_id = session[:user_id]

没有返回任何有意义的东西。我是不是用错了方法?

我看过描述在数据库中存储 session 的帖子,但我真的不明白为什么对于像获取当前登录的 user_id 这样简单的事情来说这是必要的。

最佳答案

如果您只是想跟踪在您的帖子数据库中创建帖子的用户?在 post 模型中一个简单的:

belongs to: user

应该可以。只要您的帖子数据库中也有一个 user_id 字段 (我不确定这是否是您所要求的。)

关于ruby-on-rails - 在 Rails 中获取 session 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3161414/

相关文章:

sql - rails : Using jquery tokeninput (railscast #258) to create new entries

jquery - 在 ruby​​ on Rails 中使用 jQuery 绑定(bind)下拉菜单

PHP session Cookie 因用户更改 IP 而失败

php - CodeIgniter 的 ci_sessions 是否需要偶尔清空?

asp.net - 如何管理每个选项卡一个 session ?

java - Http Session 未过期

mysql - 使用 MySqlSessionStateStore 时, key 'vtfszyfxemkrwu52hjyugphb-1' 的重复条目 'PRIMARY'

ruby-on-rails - tmp 中的权限被拒绝

ruby-on-rails - Ruby on Rails - 事件记录 - 关系 - 多对多

ruby-on-rails - 未初始化常量 APN::App::RAILS_ENV