ユーザーのアバターである画像の更新に問題があります。私はCarrierWaveを使用しており、profile
とuser
という2つのモデルを持っています。CarrierWaveを使用してイメージを更新できないのはなぜですか?
user#show
ページには、profile
のフォームがあります。そのフォームにはfile_field
があります。プロフィールはユーザーに属します。
<%= form_for @user.profile do |f| %>
<%= f.file_field :avatar %><br/>
<%= f.submit "Change Avatar" %><br/>
<% end %>
提出後、画像は更新されません。私が見サーバーのログでは:私が間違っているのは何
def update
@profile = current_user.profile
if @profile.update_attributes(params[:profile])
redirect_to user_path(current_user)
end
end
:
Processing by ProfilesController#update as HTML Parameters:
{"utf8"=>"✓",
"authenticity_token"=>"lHbhHK9SLIiTUuBJAAUyz0CSSC1tUhbE0oD2An2QEEY=",
"profile"=>{"avatar"=>#<ActionDispatch::Http::UploadedFile:0x007fa60ff43b40
@original_filename="P1010056.JPG", @content_type="image/jpeg",
@headers="Content-Disposition: form-data; name=\"profile[avatar]\";
filename=\"P1010056.JPG\"\r\nContent-Type: image/jpeg\r\n",
@tempfile=#<File:/var/folders/kq/gjn7ljfx1wx418ptwnbb46vr0000gn/T/RackMultipart20120213-2399-sm0m9c>>},
"commit"=>"Change Avatar", "id"=>"1"}
これは私のプロフィールの更新アクションのですか?
は '値だったものをクラス「アバター」=>#>を'見えますか?また、あなたのモデルでは、アップロードしたファイルを処理するために何かを使用するように指示していますか? –
アップロードされたファイルを処理するために正確に何をすべきか、他のモデルフィールドを変更したい場合、名前やその他のものも変更されません。 – Pavel
"更新されません"とはどういう意味ですか?画像をどこに保存していますか?あなたがそこに行くなら、それを見ますか? –