0

rake db:seedRails 3 アプリケーションで実行すると、次のエラーが表示されます。

rake aborted!
undefined method 'find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation'

以下は、それぞれ私のファイルcreate_users.rbseeds.rbファイルです。find_or_create_by_*メソッドが動的に作成されないのはなぜですか?

def self.up
    create_table :users do |t|
      t.string :first_name, :null => false
      t.string :last_name, :null => false
      t.string :role, :null => false
      t.string :email, :null => false
      t.string :crypted_password, :null => false
      t.string :password_salt, :null => false
      t.string :persistence_token, :null => false
      t.string :current_login_ip
      t.string :last_login_ip
      t.datetime :current_login_at
      t.datetime :last_login_at

      t.timestamps
    end
  end

User.find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation(...)

4

2 に答える 2

2

ドキュメントによると:

この動的ファインダーは find_or_create_by_ で呼び出され、オブジェクトが既に存在する場合はオブジェクトを返し、そうでない場合はオブジェクトを作成してから返します。保護された属性は、ブロックで指定されない限り設定されません。(私のものを強調)

私は推測passwordしておりpassword_confirmation、保護された属性です。

于 2011-04-02T19:15:00.633 に答える
0

役割とメールの間に「and」がありません

User.find_or_create_by_first_name_and_last_name_and_role_and_email_and_password_and_password_confirmation(...)

于 2011-04-02T06:33:14.890 に答える