我按照本教程尝试将 Paperclip 集成到我的 Rails 3 应用程序中。
但是,我的情况与本教程中描述的情况有些不同。
就我而言,User
模型已经存在于数据库中,我想上传文件并将它们与上传者相关联。
以下是我的代码的相关部分:
class User < ActiveRecord::Base
has_many :assets, :foreign_key => "uploader_id"
end
class Asset < ActiveRecord::Base
belongs_to :uploader, :class_name => "User"
has_attached_file :asset, :styles => { :thumb => "100x100#" }
end
我的案例和教程之间的主要区别在于上传输入字段不在User
表单内:
# views/lounge/index.html.erb
<%= form_tag('/lounge/upload', :multipart => true) do %>
<input id="uploader_id" name="uploader_id" type="hidden" />
<%= file_field_tag "assets[]", :multiple => true %>
<% end %>
隐藏uploader_id
输入字段的值由 Javascript 控制。
提交表单时,将upload
调用该方法:
class LoungeController < ApplicationController
def upload
uploader = User.find(params[:uploader_id])
# ??
end
end
params[:assets]
为了将上传的文件保存到文件系统并Asset
在数据库中创建相应的模型,我应该怎么做?