My Userモデルでは、column_namesメソッドを使用してadminのすべての列に対してmass_assignmentを許可します。rake db:dbにヒットしたクラスメソッドを使用するモデルでdevise_forを使用すると、migrateが失敗する
class User < ActiveRecord::Base
attr_accessible :email, :password, :password_confirmation, :remember_me
attr_accessible *column_names, as: :admin
end
しかし、これは私がすくいデシベル」を介して、私のユーザーテーブルを作成したいとき、ある
Sandbox::Application.routes.draw do
devise_for :users
end
を設定して工夫している私のルートファイルとうまく再生されない:RAILS_ENV =テストを移行します"私はテーブルのdoesntのを知っているhttp://pastie.org/3748502
で
rake aborted!
Mysql2::Error: Table 'sandbox_test.users' doesn't exist: SHOW FULL FIELDS FROM `users`
完全トレースを取得、私は私の移行を実行する必要が理由です、存在するが、何らかの形で、すくいデシベル:移行RAILS_ENV =テストは、このようにdevise_for呼び出して、ルートを再ロードdevise_forは、deviseマッピングを追加するときにUserクラスをロードします。したがって、まだ存在しないテーブルに対してcolumn_namesメソッドを呼び出します。
だから私はきれいにこれをどう扱うかわからないのですか? table_existsがあればaddを追加すべきですか?毎回私はcolumn_namesメソッドを使用したいですか?またはこの問題を処理するより良い方法はありますか?
です。新しい列を追加するたびにその行を変更する必要があります – redgetan