

`gem 'activerecord-import'`  
`gem 'paperclip'`  
を使用してattachmentカラムを含むテーブルをbulk updateしようとしていますが、  
`Missing column for value <photo>`  
となってしまいます。  
attachmentカラムをbulk updateすることは不可能なのでしょうか？

\-- 追記 --  
paperclipのモデル

[code]

    include Paperclipable
      has_attached_file :photo, {
        styles: {
          w_100px: ["100x100>", :jpg],
        },
        default_url: 'http://dummyimage.com/100x100/eee/eee'
      }.merge(PAPERCLIP_STORAGE_OPTIONS)
      validates_attachment_content_type :photo, content_type:  /\Aimage\/.*\Z/
    
[/code]

コントローラー

[code]

        spot_update_values = []
        params.require(:spots).map do |i, spot|
          spot_update_values << [ spot[:id].to_i, spot[:name], spot[:content], photo, article_content_id ]
        end
        Spot.import [ :id, :name_ja, :content_ja, :photo, :article_content_id ], spot_update_values, on_duplicate_key_update: [ :name_ja, :content_ja, :photo, :article_content_id ]
    
[/code]


CC BY-SA 3.0
2015-09-14T11:14:56.587
16596
2016-11-19T04:57:28.457
2015-09-15T01:30:11.497
12322
12322
question
ruby-on-rails
paperclipで作成したattachmentカラムをbulk updateする方法


<https://github.com/thoughtbot/paperclip#usage>  
によれば、database のレコードは、下記の4つが使用されているようです。

> The basics of Paperclip are quite simple: Declare that your model has  
>  an attachment with the has_attached_file method, and give it a name.
>
> Paperclip will wrap up to four attributes (all prefixed with that  
>  attachment's name, so you can have multiple attachments per model if  
>  you wish) and give them a friendly front end. These attributes are:
>
> <attachment>_file_name <attachment>_file_size  
>  <attachment>_content_type <attachment>_updated_at

よって、photo ではなく、photo_file_name などにすれば、バルクアップデートは出来ると考えます。  
ただ、更新はできますが、paperclip とは連携しないため、お望みの結果にはならないかもしれないと推察します。

PS. active-import で bulk update が可能であることを知らず失礼しました。


CC BY-SA 3.0
2015-09-15T11:55:00.800
16644
2015-09-15T11:55:00.800
7471
16596
answer