加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 对于载波多图像上传,“没有将nil隐式转换为字

发布时间:2020-12-17 01:51:01 所属栏目:百科 来源:网络整理
导读:这几天困扰着我.我试过不同的方法.所以我会选择最简单的形式,这应该是有效但不是. 我有两个型号.研究所和VirtualTour. class Institute ActiveRecord::Base mount_uploader :virtual_images,VirtualPicUploader has_many :virtual_tours,dependent: :destroy
这几天困扰着我.我试过不同的方法.所以我会选择最简单的形式,这应该是有效但不是.

我有两个型号.研究所和VirtualTour.

class Institute < ActiveRecord::Base
  mount_uploader :virtual_images,VirtualPicUploader

  has_many :virtual_tours,dependent: :destroy
  accepts_nested_attributes_for :virtual_tours,allow_destroy: true
end


class VirtualTour < ActiveRecord::Base
  belongs_to :institute
  mount_uploader :image,VirtualPicUploader
end

我为研究所设备很有意思.这个更简单的版本没有考虑强参数,所以我会保持这样.

def account_update
      default_params.permit!
  end

在编辑时会发生此上传,这就是使用account_update的原因.

<%= form_for(resource,as: resource_name,url: registration_path(resource_name),html: { method: :put,multipart: true }) do |f| %>
  <%= f.fields_for :virtual_tours do |ff| %>
   <%= ff.file_field :image,multiple: true %>
   <%= ff.hidden_field :institute_id,value: f.object.id %>
  <% end %>
<% end %>

我提交时在浏览器中出现此错误.

no implicit conversion of nil into String

   def cache_path
      File.expand_path(File.join(cache_dir,cache_name),root)
   end

在日志中,
在91ms内完成500内部服务器错误(ActiveRecord:1.8ms)

TypeError (no implicit conversion of nil into String):
  carrierwave (0.10.0) lib/carrierwave/uploader/cache.rb:159:in `join'
  carrierwave (0.10.0) lib/carrierwave/uploader/cache.rb:159:in `cache_path'
  carrierwave (0.10.0) lib/carrierwave/uploader/cache.rb:131:in `block in cache!'
  carrierwave (0.10.0) lib/carrierwave/uploader/callbacks.rb:17:in `with_callbacks'
  carrierwave (0.10.0) lib/carrierwave/uploader/cache.rb:122:in `cache!'
  carrierwave (0.10.0) lib/carrierwave/mount.rb:329:in `cache'
  carrierwave (0.10.0) lib/carrierwave/mount.rb:163:in `image='
  carrierwave (0.10.0) lib/carrierwave/orm/activerecord.rb:39:in `image='
  activerecord (4.2.4) lib/active_record/attribute_assignment.rb:54:in `public_send'
  activerecord (4.2.4) lib/active_record/attribute_assignment.rb:54:in `_assign_attribute'
  activerecord (4.2.4) lib/active_record/attribute_assignment.rb:41:in `block in assign_attributes'
  actionpack (4.2.4) lib/action_controller/metal/strong_parameters.rb:185:in `each_pair'
  actionpack (4.2.4) lib/action_controller/metal/strong_parameters.rb:185:in `each_pair'
  activerecord (4.2.4) lib/active_record/attribute_assignment.rb:35:in `assign_attributes'
  activerecord (4.2.4) lib/active_record/nested_attributes.rb:513:in `assign_to_or_mark_for_destruction'
  activerecord (4.2.4) lib/active_record/nested_attributes.rb:479:in `block in assign_nested_attributes_for_collection_association'
  activerecord (4.2.4) lib/active_record/nested_attributes.rb:460:in `each'

过去两天一直在研究这个问题.任何帮助,将不胜感激.

解决方法

我刚遇到同样的问题.我用它来修复它 mount_uploaders不是mount_uploader

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读