acts_as_attachment
をそのまんま参考にacts_as_attachmentを使ってみる。
./script/plugin source http://svn.techno-weenie.net/projects/plugins ./script/plugin install acts_as_attachment ./script/generate attachment_model photo
db/scheme.rbはこんな感じ(db使用なのでdb_file_idあり)。
create_table "photos", :force => true do |t| t.column "content_type", :string t.column "filename", :string t.column "size", :integer t.column "parent_id", :integer t.column "thumbnail", :string t.column "width", :integer t.column "height", :integer t.column "db_file_id", :integer t.column "datetime", :datetime end
controllerはこんな感じ
def create @photo = Photo.new(params[:photo]) @photo.user_id = session[:user] if @photo.save flash[:notice] = '新しい写真が追加されました' redirect_to :action => 'list' else render :action => 'new' end end
viewはこんな感じ
=== new.rhtml === <h1>新しい写真</h1> <% form_tag({:action =>'create'}, {:name=>'album', :multipart => true}) do %> <%= render :partial => 'form' %> <%= submit_tag "登録" %> <% end %> <br/> <%= link_to '戻る', :action => 'list' %> === _form.rhtml === 画像ファイルの選択 <%= file_field :photo, :uploaded_data %>