これを参考にしてCarrierWaveを使った画像アップロード機能を実装してみた。 Rails 超お手軽な画像アップローダー CarrierWave の使い方 | Workabroad.jp ↑のサイトではCapybaraを使ったインテグレーションテストの書き方は載っているけど、コントローラのテスト方法が載っていなかったのでちょっとだけ詰まった。 言い換えると、今回はファイルを添付してアップロードするフォームのテストを書くというのと同義。 サンプル フォーム Userモデルには名前とプロフィール画像があって、更新フォームで名前とか画像をセットできることにする。 = form_for(@user, html:{ method: :put, role: "form" }) do |f| .form-group = f.label :image, "プロフィール画像" = f.file_fiel
# coding: utf-8 include ActionDispatch::TestProcess FactoryGirl.define do factory :user do name { Faker::Name.name } avatar { fixture_file_upload Rails.root.join('path', 'to', 'avatar.png'), 'image/png' } end end っていう風にすると良い。 こうすることで、avatar.pngをアップロードした状態のUserを生成できる。 最初ActionDispatch::TestProcessをincludeし忘れてて、「なんで動かないんじゃこいつ」ってなってたので、多分他にも困ってる人いるんじゃないかなぁ。 と思ってたら↓こういうやり方もあるらしい。 How to: Use test fixt
動画ファイルなどの、メモリ量に対して巨大なファイルをアップロードする場合、ファイルを全て読み込んで送信/受信を行うとメモリを圧迫してしまうため問題がある場合があります。 こういう場合はメモリの使用量は一定範囲に抑えるために、バッファに少しづつ読み込んでは送信し、送信できたら次を送信し、あるいは少し受け取ったらファイルシステムに書き出し、書き出したら次を読み込むといったことをやることになります。 rubyでこれを行う場合にどういう方法をとればいいのかについて確認したのでまとめてみました。 結論 送信(クライアント側) net/http を使う場合は Net::HTTPGenericRequest#body_stream= で読み出し可能な File や IO を渡す。 HTTPClient を使う場合はデータとして読み出し可能な File や IO を渡す。 RestClient は1.7.
Searched for this question and could not find it, or its answer on Stack Overflow, but found it elsewhere, so I'm asking to make it available on SO. The rails framework has a function fixture_file_upload (Rails 2 Rails 3, Rails 5), which will search your fixtures directory for the file specified and will make it available as a test file for the controller in functional testing. To use it: 1) Put y
このまえ Sinatra でファイルをダウンロードさせる方法を書いた。では逆、アップロードはどうだろう?試したところ、次のようになった。 require 'rubygems' require 'sinatra' require 'haml' get '/' do haml :index end # アップロードされたファイルを返す put '/upload' do if params[:file] content_type params[:file][:type] f = params[:file][:tempfile] f.read f.size end end __END__ @@index %html %body %form{:action => '/upload', :method => 'POST', :enctype => 'multipart/form-data'} %inp
Marcos V. wrote: If you use datamapper, there is an paperclip for datamapper! regards! Thanks for the reply! I’m using ActiveRecord and wouldn’t want to change to Datamapper unless I HAD to. Thanks again, I’ll look into it as soon as I get a chance. -Tony Tony T. wrote: I need to upload an image from my local computer to a web server and store the location in a database (similar to how Paperclip a
今回はファイルのアップロードですが、データベースにではなく直接ファイルを流します。 そのため管理者であるということを条件として作成していきます。 ですのでadministratorは管理者であるという意味です。 そしてadministrator内にfileを作成し、その中にnew.html.erbとdone.html.erbを作成します。 まずはroutes.rbの作成です。管理者になっている(ログインしている)という意味のcollection にget内にdoneとnewを追加します。 今回使うファイルはdone.html.erbとnew.html.erbだけなのでこれだけです。 new自体はお決まりのindex,new,show,edit,createの中に入っているので指定する必要はないのですが、indexがないためnewに直接飛ばすという意味で指定しました。 resources :
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く