Ruby on Rails accepted_nested_attributes_for不起作用

时间:2016-11-06 17:39:11

标签: ruby-on-rails devise carrierwave

我有一个用户模型(使用设计宝石),我希望用户能够在创建帐户时上传个人资料图片。使用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中可以看到的相同的事情。

0 个答案:

没有答案