6

メールを送信してユーザーをアクティブにするために、デバイスをオーバーライドしようとしています。登録コントローラーの作成メソッドには、これがあります

urlEmail = resource.email.sub('@','-')
Pony.mail(
    :to => resource.email,
    :from => "noreply@mysite.com",
    :subject => "Confirm Account",
    :headers => { 'Content-Type' => 'text/html' },
    :body => ("<h1>Welcome To My Awesome Site</h1>
              <p>follow this link to create your account</p>
              <p>http://localhost:3000/confirm-me/stuff?=" + resource.confirmhash.to_s + "/" + urlEmail.to_s  + "</p>") )

この URL は、ユーザーをアクティブ化する方法につながります。これがアカウントを確認する良い方法であるかどうかは問題ではありません。問題は、Pony.mail(...) を実行すると、このエラーが発生することです。

uninitialized constant RegistrationsController::Pony

私はポニーをインストールし、コンソールで Pony.mail が動作します。また、コントローラー ファイルの先頭で require 'pony' を使用しようとしましたが、

no such file to load -- pony

これを機能させるにはどうすればよいですか。

4

1 に答える 1

2

バンドラーの問題のようです。コントローラテストと同じRAILS_ENVでコンソールを実行していますか?

pony.rbをライブラリ(https://github.com/benprew/ponyから)にコピーして、コントローラーファイルの先頭に配置するようにしてください。gem "pony"Gemfileから削除します。bundle install。テストを行います。

ヘルプがあれば、bundlerに戻り、Gemfile.lockを削除して、を実行しますbundle install

それでもこの問題が発生する場合は、Gemfileをここに含めてください。

于 2011-11-23T15:23:25.673 に答える