我目前正在开发一个保存到Parse表的Rails应用程序。在注册时,用户必须上传个人资料图片,我试图使用CarrierWave上传图像/上传后调整大小。由于某种原因,表单不保存提交。以下是我的代码片段,对此问题的任何帮助都会很棒。注意:没有file_field,表单工作正常,并在表单提交上创建并保存新用户。另外,我使用parse_resource gem与Parse交谈
用户模型包括:
class User < ParseUser
fields :avatar
extend CarrierWave::Mount
mount_uploader :avatar, AvatarUploader
def save_avatar
self.store_avatar!
end
end
users_controller包括:
def create
@user = User.new(user_params)
@user.save_avatar
if @user.save
session[:user_id] = @user.id
if @user.role == 'artist'
redirect_to user_path(@user)
elsif @user.role == 'manager'
redirect_to user_path(@user)
end
else
if @user.role == 'artist'
render :new_artist, alert: "Oops, something went wrong. Please try again."
elsif @user.role == 'manager'
render :new_manager, alert: "Oops, something went wrong. Please try again."
end
end
end
注册表单的一部分:
<p>
<%= f.file_field :avatar %>
</p>
<%= f.submit :submit %>
服务器日志:
Started POST "/users" for 127.0.0.1 at 2014-06-04 11:03:21 -0400
Processing by UsersController#create as HTML
Parameters: {"utf8"=>"✓","authenticity_token"=>"KBLWG5M8Qn8YR6oVa4jBjppaNpIVs3KvnLXyor3ZMA4=", "user"=>{"first_name"=>"ta", "last_name"=>"ha", "email"=>"test@test.com", "password"=>"[FILTERED]", "role"=>"artist", "avatar"=>#<ActionDispatch::Http::UploadedFile:0x007fab0c4825b0 @tempfile=#<Tempfile:/var/folders/sr/4btqvj_13ws7vx__8sylx54h0000gn/T/RackMultipart20140604-12587-19rgv0q>, @original_filename="IMG_20140201_210354~2.jpg", @content_type="image/jpeg", @headers="Content-Disposition: form-data; name=\"user[avatar]\"; filename=\"IMG_20140201_210354~2.jpg\"\r\nContent-Type: image/jpeg\r\n">, "bandType"=>"Solo", "bandName"=>"hello world"}, "commit"=>"submit"}
Rendered users/_artist_signup_form.html.erb (3.2ms)
Rendered users/new_artist.html.erb within layouts/application (5.6ms)
Completed 200 OK in 36ms (Views: 12.0ms | ActiveRecord: 0.0ms)