4

私は、seeds.rbに関してシードがどのように機能するかを理解していると確信していますが、それを使用してrestful_authentication Userオブジェクトをデータベースに貼り付けることはできないようです。

User.create(:login => 'admin',
            :role => Role.find_by_name('super_admin'),
            :email => 'admin@example.com',
            :password => '123123')

何か不足していますか?

編集:パスワード確認も追加してみました。まだ何もありません。

4

3 に答える 3

2

User.create!()同じパラメータを使用してみてください)。これにより、コンソールに検証エラーが表示されます。

于 2010-02-25T04:21:31.093 に答える
1

パスワード確認?

于 2010-02-25T03:56:03.170 に答える
1

通知をオンにしましたか?その場合、Userモデルは電子メール通知を送信しようとしています。メール サーバーを構成していない場合、作成操作は失敗します。

この問題を回避するには、次のことを行う必要がありました。

1 ユーザーモデルを修正する

という仮想属性を追加しますdont_notify

class User < ActiveRecord::Base
   # add a attribute
   attr_accessor dont_notify
end

2 Observer コードを変更して属性を検出します。

class UserObserver < ActiveRecord::Observer

  def after_create(user)
    return if user.dont_notify? #notice this line 
    UserMailer.deliver_signup_notification(user)
  end

  def after_save(user)
    return if user.dont_notify? #notice this line
    UserMailer.deliver_activation(user) if user.recently_activated?
  end
end

3dont_notifyシード中にフラグを設定する

seed.rbフラグを設定します。

User.create(:login => 'admin',
            :role => Role.find_by_name('super_admin'),
            :email => 'admin@example.com',
            :password => '123123',
            :password_confirmation => '123123',
            :dont_notify => true
         )
于 2010-02-25T10:10:57.603 に答える