2


0

Rails 2.3.4で連絡フォームを作成しようとしています。 私はこれと一緒にjQuery Formプラグインを使っています(http://bassistance.de/jquery-plugins/jquery-plugin-validation/) すべてが私の開発環境(mac os x snow leopard)で動作し、loading gifが表示され、私のログには電子メールが送信され、「request completed」という通知が表示されます。 しかし私のプロダクションマシンではローディングgifは動き続け、フォームは送られません。 私はできる限り待っていた、何もない。

これが私のコードです:

/public/javascripts/application.js

//クライアントサイドの検証とajaxによる連絡フォームの送信$( '#contactForm')。validate({rules:{'email [name]':{必須:true}、 'email [address]':{必須:true、 "email:true}、 'email [件名]:{必須:true}、' email [本文] ':{必須:true}}、メッセージ:{' email [名前] ':"あなたの名前を入力してください。 "、 'email [address]': "有効なメールアドレスを入力してください。"、 'email [subject]': "件名を入力してください。"、 'email [body]': "メッセージを入力してください。"}、submitHandler: function(form){$(form).ajaxSubmit({dataType: 'script'、beforeSend:function(){$( "。loadMsg")。show();}}); return false;}});

実際のajaxSubmitを送信するためにsubmitHandlerを使用しています。 ロードするグラフィックに「dataType:」スクリプトと「beforeSubmit」を追加しました。

request.postならdef send_mail? 応答する|ほしい| "ContactMailer.deliver_contact_request(params [:email])flash [:notice] ="メールは正常に送信されました。 " wants.jsエンドエンドエンドエンド

開発ではすべてうまくいきますが、本番ではうまくいきません。 何が足りないのですか?

1 Answer


1


あなたの制作ログをチェックして、おそらくメーラーが実際にEメールを送信できないかどうかを確認します。 いくつか確認しておきます。

  • メーラの設定は、自分の環境/ development.rbだけで定義し、environment / production.rbやenvironment.rbでも定義していませんか?

  • それはあなたの 'ローダー’を表示しているので、正しいJSファイルを送信していない可能性は低いですが、もしあなたがJSファイルをキャッシュしているのなら、正しいバージョンを送信しているか確認します

スクリプト/サーバーのプロダクションを常にローカルで実行するか、実際のプロダクションサーバーをチェックするのが面倒な場合は、Passenger envをローカルでプロダクションに切り替えることもできます。

私はまたMailerを取り、responds_toブロックの外にそれを動かすであろう:

request.postならdef send_mail? ContactMailer.deliver_contact_request(params [:email])respond_to do | want | wants.jsエンドエンドエンドエンド