0

我正在构建一个 Rails 应用程序,用户在其中上传图像,然后将其发送到 rmagick 进行修改,然后进行渲染。由于用户只处理一张图像,我最初认为我可以将其存储在内存中而不是数据库中,但这似乎不可行。模型名称是 AppImage,所以我想在渲染之前显示 AppImage.last 并删除所有以前的 AppImage,但我想知道这是否会导致多个用户出现问题。

让每个用户根据他们的 IP 获取用户配置文件并让每个用户拥有一个 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

应用程序/配置/初始化程序/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 回答