Как правильно делать Ajax и обрабатывать ошибки формы для партиала в Rails? - PullRequest
0 голосов
/ 19 ноября 2011

У меня есть поле для регистрации на боковой панели, например:

--------------------------------
|                   |          |
|                   |          |
|                   |__________|
|                   |NEWSLETTER|
|                   |          |
|                   |          |
--------------------------------

Я создал newsletter_controller со следующим действием:

class SubscribersController < ApplicationController
  def create
    @subscriber = Subscriber.new(params[:subscriber])
  end
end

Я запутался в нескольких вещах в рельсах:

1. Как написать форму с помощниками рельсов, которые будут публиковать это как запрос AJAX?

2. Если то, что вводит пользователь, не является действительным электронным письмом или пустым, как мне написать сообщение прямо на боковой панели новостной рассылки рядом с полем формы?

3. Если вставка прошла успешно, как заменить форму сообщением «Вы зарегистрированы».

Я новичок и в рельсах, и в jquery.

1 Ответ

0 голосов
/ 19 ноября 2011

1) Вам нужно будет прочитать rails и jquery API, касающиеся обработки форм и создания сообщений ajax.Первый можно найти здесь: http://guides.rubyonrails.org/form_helpers.html Последний можно найти здесь: http://api.jquery.com/jQuery.post/.На обеих этих страницах есть хорошие примеры

2) Вы захотите выполнить какое-то базовое регулярное выражение для ввода через javascript (и снова, когда данные отправляются с рельсов), чтобы проверить ввод пользователя.Вот еще одна статья о переполнении стека: jQuery Email Regex .Вот пример его использования:

var fakeEmailAddress = "a@b.com";
var emailRegex = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}$/i;
var isAnEmailAddress = fakeEmailAddress.match(emailRegex);
if (!isAnEmailAddress) {
    alert("Yo bro. What's up with that email addy? Try again");
}

3) В посте jquery ajax вы можете установить для этого функцию «success».Проверьте ссылку в # 1.Возможно, вы захотите дать форме атрибут ID и заменить форму HTML-данными, полученными из этого поста, как показано в следующем вопросе stackoverflow: почему это не работает ??JQuery AJAX заменить содержимое в конкретном Div

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