0

このガイドに従って、移行でモデルを使用します。ここで、type booleanという新しい列suspectをQuestionテーブルに追加します。デフォルト値はですfalse。また、作成されたレコードも更新します。これは私の移行ファイルです:

class AddSuspectToQuestions < ActiveRecord::Migration
  class Question < ActiveRecord::Base
  end

  def change
    add_column :questions, :suspect, :boolean, default: false
    Question.reset_column_information
    Question.all.each do |question|
      question.update_attributes!(suspect: false)
    end
  end
end

しかし、実行するrake db:migrateと、エラーが発生します。

==  AddSuspectToQuestions: migrating ==========================================
-- add_column(:questions, :suspect, :boolean, {:default=>false})
   -> 0.3782s
rake aborted!
An error has occurred, this and all later migrations canceled:

Can't mass-assign protected attributes: suspect

必要だと思うattr_accesible :suspectので、質問モデルに追加しましたが、再度移行を実行しても同じエラーが発生します。私もこれを設定しましたapplication.rb

config.active_record.whitelist_attributes = true

誰かがこの問題に遭遇しましたか?

4

1 に答える 1

1

移行で質問クラスを上書きしているため、機能しません。

削除する

class Question < ActiveRecord::Base
end

もう一度やり直してください。

于 2012-11-19T12:15:18.403 に答える