2

我的控制器是:

  def index
     puts session.inspect
   end

  def create
    @asset = Asset.new(params[:asset])]
    respond_to do |format|
      if @asset.save
        unless session[:assets] && session[:assets].kind_of?(Array)
          session[:assets] = Array.new
        end
        session[:expires_at] = Time.now + 1.hour
        session[:assets] << @asset  
      end
  end

我想将一些模型保存到会话中并稍后获取,但是创建一些资产后,我什么也得不到

4

2 回答 2

1

不要将它们存放在这里,请使用relashionship。例如,在用户中,has_many :assets.

于 2013-02-25T22:22:48.580 回答
0

问题是您试图在会话中存储复杂的对象(资产) - 不幸的是,这不起作用。您要做的是在会话中保存唯一键并在下次加载时从数据库中检索对象:

session[:assets] << @asset.id

在索引中,您可以调用:

puts Asset.where(:id => session[:assets]).all.inspect

于 2013-02-26T00:22:33.613 回答