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 に答える