3

多くの写真を含むプロパティモデルがあります。refile gemを使用して画像をアップロードしようとしています。

class Property < ActiveRecord::Base
  has_many :photos, :dependent => :destroy
  accepts_attachments_for :photos, attachment: :file
end

class Photo < ActiveRecord::Base
  belongs_to :property
  attachment :file
end

schema.rb の Photo セクションは次のとおりです。

  create_table "photos", force: :cascade do |t|
    t.integer  "property_id"
    t.string   "file"
    t.datetime "created_at",  null: false
    t.datetime "updated_at",  null: false
  end

そして、ここに新しいプロパティフォームの作成の関連部分があります(スリム)

.form
  = form_for @property do |property|
    .file_upload
        = property.attachment_field :photos_files, multiple: true
        = property.label :photos_files

      = property.submit

これがプロパティコントローラーです

class PropertiesController < ApplicationController
  def new
    @property = Property.new
  end

  def create
    @property = Property.new(property_params)
    if @property.save!
      redirect_to @property
    else
      render 'new'
    end
  end

  private

  def property_params
    params.require(:property).permit(:attributes.... photos_files: [])
  end
end

フォームを送信した後、次のエラーが表示されます。

NoMethodError (undefined method `file_id_will_change!' for #<Photo:0x007f96e8532560>):

しばらく頭をかいた後、私がどこを台無しにしたのかわかりません。

4

1 に答える 1