Все работает в этом представлении Ajax за исключением уведомления - PullRequest
0 голосов
/ 02 июля 2011

Письмо все еще отправляется и доставляется, но флеш-сообщения по-прежнему нет.

Форма:

    <%= form_for :fb_comment, :url => update_reply_feedback_path, :html => { :id => "reply" }, :remote => true do |f| %>
        <%= f.text_area :reply, :size => '66x7' %><br>
        <center><%= f.submit "Send Reply"  %></center>
    <% end %>

в файле макета:

<%- flash.each do |name, msg| -%>
   <%= content_tag :div, msg, :id => "flash_#{name}" %>
<%- end -%>

в контроллере:

def reply2_feedback
   ...
   flash.now[:notice] = 'Reply was successfully sent.'
   respond_to do |format|
      format.html {}
      format.js
   end 
end

в application.js:

jQuery.ajaxSetup({
   'beforeSend': function(xhr) {xhr.setRequestHeader("Accept", "text/javascript")}
})

$(document).ready(function() {
   $("#reply").submit(function() {
      $.post($(this).attr("action"), $(this).serialize(), null, "script");
      return false;
   })
})

update_reply.js.erb:

$("#flash").html('<div class="notice_alert"><%= escape_javascript(flash.delete(:notice)) %></div>');

Спасибо.

Ответы [ 2 ]

2 голосов
/ 03 июля 2011

Попробуйте использовать

flash.now[:notice] = 'Reply was successfully sent.'

.

0 голосов
/ 05 июля 2011

После 58 просмотров без решения я решил пойти в пещеру, чтобы уложиться в крайний срок, и согласиться на второе место, добавив простое предупреждение в javascript. Если на этот вопрос кто-нибудь случится и предоставит решение, которое заставит работать флэш-сообщение, я перейду к вам. Спасибо тем, кто дал ему шанс.

$(document).ready(function() {
    $("#reply").submit(function() {
        $.post($(this).attr("action"), $(this).serialize(), null, "script");
        alert("Your reply was emailed.");
        return false;
    })
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...