Это выглядит точно так же, как вопрос, на который я только что ответил сегодня для другого пользователя ... те же названия моделей и все.
def create
@subscriber = Subscriber.new(#your params)
respond_to do |format|
if @subscriber.save
format.js { render :json => @subscriber, :status => :created, :location => @susbscriber }
else
format.js { render :json => @susbcriber.errors, :status => :unprocessable_entity }
end
end
end
Кроме того, вам не нужно делать unless Subscriber.find_by_email(params[:email])
в вашемконтроллер.Вам просто нужно добавить validates_uniqueness_of :email
к модели подписчика.
В файле .erb, который содержит форму, вы должны добавить следующий javascript:
jQuery(function($) {
// create a convenient toggleLoading function
var toggleLoading = function() { $("#loading").toggle() };
$("#your-form")
.bind("ajax:loading", toggleLoading)
.bind("ajax:complete", toggleLoading)
.bind("ajax:success", function(event, data, status, xhr) {
$("#response").html(data);
});
.bind("ajax:failure", function(event, data, status, xhr) {
//your code
});
});