0

ユーザーが画像をアップロードし、それが rmagick に送信されて変更され、レンダリングされる Rails アプリを構築しています。ユーザーが扱う画像は 1 つだけなので、最初はデータベースではなくメモリに格納できると考えていましたが、それは実現不可能のようです。モデル名がAppImageなので、AppImage.lastを表示してレンダリング直前に以前のAppImageを全て削除することを考えたのですが、マルチユーザーで問題が発生するのではないかと思います。

各ユーザーに IP に従ってユーザー プロファイルを取得させ、ユーザーごとに 1 つの AppImage を持たせる最適なソリューションはありますか? セッションハッシュについて考えるべきですか?

編集:私は現在ペーパークリップを使用していますが、プログラムの構成方法がわかりません。

4

1 に答える 1

0

ユーザーが画像をアップロードする場合、セッション変数をtrueに設定し、セッション変数が設定されているかどうかをアップロードコントローラーで確認できます。ユーザーが画像をアップロードできるかどうかに依存します。セッション ストアを db に設定できます。さらに、セッションが保存される期間の範囲を定義できます。

コントローラ:

def new
  @upload = YourUploadModel.new
  session[:image_uploaded] ||= true
end

def create
  if session[:image_uploaded] && session[:image_uploaded] == true
    redirect_to root_path, :notice => "Already uploaded an image today!"
  else
    # create your upload..
  end
end

app/config/initializers/session_store.rb:

# Use the database for sessions instead of the cookie-based default,
# which shouldn't be used to store highly confidential information
# (create the session table with "rails generate session_migration")
YourAppname::Application.config.session_store :active_record_store, {
  expire_after: 1.days
}
于 2013-05-13T05:23:21.580 に答える