Rails 2.3.4 и плагин jquery form работают на разработке, а не на производстве? - PullRequest
2 голосов
/ 06 октября 2009

Я пытаюсь создать контактную форму в Rails 2.3.4. Я использую плагин jQuery Form вместе с этим (http://bassistance.de/jquery-plugins/jquery-plugin-validation/) для проверок. Все работает в моей среде разработки (Mac OS X Snow Leopard), появляется загрузочный GIF и в моем журнале отправляется электронное письмо и Запрос выполнен ". Уведомление показывает. Но на моем производственном компьютере загрузочный GIF просто продолжает работать, а форма не отправляется. Я ждал столько, сколько мог, ничего.

Вот мой код:

/ государственные / JavaScripts / application.js


 // client-side validation and ajax submit contact form 
 $('#contactForm').validate( {
  rules: {
   'email[name]': { required: true },
   'email[address]': {
    required: true,
    email: true
   },
   'email[subject]': {
    required: true
   },
   'email[body]': {
    required: true
   }
  },
  messages: {
   'email[name]': "Please enter your name.",
   'email[address]': "Please enter a valid email address.",
   'email[subject]': "Please enter a subject.",
   'email[body]': "Please enter a message."
  },
  submitHandler: function(form) {
   $(form).ajaxSubmit({
    dataType: 'script',
    beforeSend: function() {
     $(".loadMsg").show();
    }
   });
   return false;
  }  
 });

Я использую submitHandler для отправки фактического ajaxSubmit. Я добавил «dataType:« script »и« beforeSubmit »для загрузки графики.


  def send_mail
    if request.post?
      respond_to do |wants|
        ContactMailer.deliver_contact_request(params[:email])
        flash[:notice] = "Email was successfully sent."
        wants.js
      end
    end
  end

Все отлично работает на разработке, но не на производстве. Что я пропустил или сделал не так?

1 Ответ

1 голос
/ 06 октября 2009

Я бы проверил ваши производственные журналы, чтобы узнать, не может ли Почтовик на самом деле отправить электронное письмо. Несколько вещей, которые я бы проверил:

  • Вы определили конфигурацию почтовой программы только в ваших средах / development.rb, а не в средах / production.rb или environment.rb?
  • Поскольку он показывает ваш загрузчик, маловероятно, что он не отправляет правильные файлы JS, но я бы проверил, чтобы он отправлял правильные версии, если, возможно, вы кэшируете свои файлы JS.

Вы также можете всегда запускать производство сценариев / серверов локально или переключать свой Passenger env локально на производство, чтобы проверить его, стоит ли проверять фактические производственные серверы.

Я бы также взял Mailer и переместил его из блока responseds_to:

  def send_mail
    if request.post?
      ContactMailer.deliver_contact_request(params[:email])
      respond_to do |wants|
        wants.js
      end
    end
  end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...