我有一个用户模型(使用设计宝石),我希望用户能够在创建帐户时上传个人资料图片。使用carrierwave处理文件处理。
我遇到的问题是图像行没有创建。我没有收到有关无效参数的任何错误,图片行根本就没有被创建。
这是我的用户模型:
RuntimeError: wrapped C/C++ object of type QProgressBar has been deleted
我的RegistrationsController里面的sign_up_params方法
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
attr_accessor :profile_image, :profile_image_attributes
has_many :images
has_one :profile_image
has_many :contents
has_many :comments
accepts_nested_attributes_for :profile_image
end
这是fields_for
def sign_up_params
params.require(:user).permit(:forename, :surname, :email, :password, :password_confirmation, profile_image_attributes: [:content, :file])
end
这是正在创建的用户行的日志。没有关于创建图像行的信息。
<div class="field">
<%= f.fields_for :profile_image, resource.build_profile_image do |image_form| %>
<%= image_form.label :file, 'Profile Picture' %> <br>
<%= image_form.file_field :file %> <br>
<%= image_form.label :content, 'Description' %> <br>
<%= image_form.text_area :content %> <br>
<% end %>
</div>
profile_image只是我的图像模型的子类。我基本上做了this answer中可以看到的相同的事情。