rails paperclip mysql不保存文件

附件恢复似乎工作正常,但我没有任何插入数据库(null,null,null,null),我没有文件上传到我的应用程序中的任何文件夹…

class AddAttachmentCvToUsers < ActiveRecord::Migration def change change_table :users do |t| t.attachment :cv end end end 

用户模型:

 attr_accessor :cv validates_attachment :cv has_attached_file :cv, :path=>":rails_root/storage/#{Rails.env}#{ENV['RAILS_TEST_NUMBER']}/." 

我也安装了carrierwave,但仍然没有效果..编辑:用户控制器(我没有其他附件控制器):

 class UsersController < ApplicationController def new @users = User.new end def create @user = User.new(user_params) if @user.save session[:user_id] = @user.id current_user = @user.id redirect_to '/status' else redirect_to '/signup' end end private def user_params params.require(:user).permit(:first_name, :last_name, :email, :PESEL, :phone, :password,:cv) end end 

查看具有附件的新用户:

  

控制台的一些日志:

 Started POST "/users" for 127.0.0.1 at 2016-05-18 03:55:17 +0200 Processing by UsersController#create as HTML Parameters: {"utf8"=>"✓", "authenticity_token"=>"Fw6easThY51CDppDDVfqO0ProQITaltqP3DaIL3An67ey4vGXh2yEerhhhxoo3bTp/mKbkIaAmktzBviBIjg8g==", "user"=>{"first_name"=>"Test", "last_name"=>"Test", "email"=>"test@t.pl", "PESEL"=>"91020300441", "phone"=>"609123123", "password"=>"[FILTERED]"}, "CV"=>#<ActionDispatch::Http::UploadedFile:0x007f25790c1b60 @tempfile=#, @original_filename="pdf-test.pdf", @content_type="application/pdf", @headers="Content-Disposition: form-data; name=\"CV\"; filename=\"pdf-test.pdf\"\r\nContent-Type: application/pdf\r\n">, "commit"=>"Sign up"} (0.1ms) BEGIN User Exists (1.4ms) SELECT 1 AS one FROM `users` WHERE `users`.`email` = BINARY 'test@t.pl' LIMIT 1 User Exists (0.1ms) SELECT 1 AS one FROM `users` WHERE `users`.`PESEL` = BINARY '91020300441' LIMIT 1 SQL (0.1ms) INSERT INTO `users` (`first_name`, `last_name`, `email`, `PESEL`, `phone`, `password_digest`, `created_at`, `updated_at`) VALUES ('Test', 'Test', 'test@t.pl', '91020300441', '609123123', '$2a$10$HmHAiJkHv1Tada/OpzKXKOISiwumoFKTy48tFpNBYuATq/A5GaC9G', '2016-05-18 01:55:17', '2016-05-18 01:55:17') SQL (1.0ms) INSERT INTO `job_apps` (`user_id`, `created_at`, `updated_at`) VALUES (35, '2016-05-18 01:55:17', '2016-05-18 01:55:17') (3.0ms) COMMIT Redirected to http://localhost:3000/status Completed 302 Found in 135ms (ActiveRecord: 8.2ms) Started GET "/status" for 127.0.0.1 at 2016-05-18 03:55:17 +0200 Processing by JobAppsController#index as HTML 

您已重写file_fieldname属性,该属性已破坏Rails命名约定。 如果删除name属性,Rails将能够将:cv字段中上载的文件详细信息传递给数据库。

file_field更改为:

 <%= f.file_field :cv, class: 'form-control' %> 

如果你有Javascript附加到表单,并需要引用file_field元素,你可以使用它,而不是:

 <%= f.file_field :cv, id: "cv", class: "form-control" %>