このチュートリアルに従って、 PaperclipをRails3アプリケーションに統合しようとしました。
ただし、私の場合は、このチュートリアルで説明されているものとは少し異なります。
私の場合、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
し、データベースに対応するモデルを作成するにはどうすればよいですか?