Оповещение не работает в ситуации Rails / AJAX? - PullRequest
3 голосов
/ 08 мая 2011

Ch8 из книги Beginning Rails содержит пример форм Ajax, который работает нормально, за исключением того, что не выводит предупреждение о неверном вводе.

Код контроллера:

    def create 
    @comment = @article.comments.new(params[:comment]) 
    if @comment.save 
      respond_to do |format| 
        format.html { redirect_to @article, :notice => 'Thanks for your comment' } 
        format.js 
      end 
    else 
      respond_to do |format|

    format.html { redirect_to @article, :alert => 'Unable to add comment due to errors in your input'}

        #   logger.info("#{Time.now} Ajax invalid validation

        ##{@comment.errors.full_messages}!")
        format.js { render 'fail.js.erb' } 

      end 
    end 
  end

Файл fail_create.js.erb содержит одну строку;

alert("<%= @comment.errors.full_messages.to_sentence %>");

Может ли какой-нибудь добрый человек объяснить, почему это не работает, спасибо

Ответы [ 2 ]

0 голосов
/ 11 мая 2011

Книга говорит использовать jQuery 1.4.2

Обновлен до 1.4.4 и все работало хорошо

0 голосов
/ 08 мая 2011

Вы отображаете "fail.js.erb", но в своем вопросе вы говорите, что файл "fail_create.js.erb" содержит код.Это опечатка в вашем вопросе или проблема в вашем коде?

Кроме того, использование RJS считается плохой формой в Rails.Если вы рассматриваете этот пример как учебный опыт, который дает вам больше возможностей, но это был неудачный эксперимент в сообществе Rails.Javascript должен жить самостоятельно (и желательно, чтобы он был незаметно добавлен на сайт).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...