RoR, Jquery, Ajax формы ошибок - PullRequest
1 голос
/ 13 июля 2009

Хорошо. У меня есть форма создания, где люди могут создавать предприятия, которые затем добавляются в базу данных. Все работало нормально Rails выдавал свои ошибки, если вещи не были заполнены правильно, и если бы они были, вы были бы перенаправлены на другую страницу, которая покажет вам бизнес, который вы только что создали. Теперь я должен быть в состоянии щелкнуть «Создать» и заставить AJAX реализовать бизнес и добавить его в таблицу ниже. Вещи вроде работают. 1 бизнес обновляется, но динамически не добавляется в таблицу. 2. большая проблема в том, что они не заполняют обязательные поля, нажатие кнопки «создать» ничего не делает. Это не бросает ни одной из ошибок. Я использую jquery для вызова ajax через файлы .js.erb. Вот мой файл .js.erb.

$("#new_business").before('<div id="flash_notice"><%= escape_javascript(flash.delete(:notice)) %></div>');
$("#businesses").append("<%= escape_javascript(render(:partial => @businesses)) %>");
$("#new_business")[0].reset();

и мой бизнес-контролер

    def create
    @business = Business.new(params[:business])

    respond_to do |format|
      if @business.save
        #blindly make them the owner of the business they created
        if current_user
          current_user.business_id = @business.id
          current_user.save
        end
        flash.now[:notice] = 'Business was successfully created.'
        format.html { redirect_to(business_url(@business)) }
        format.js { render :layout => false }
        format.xml  { render :xml => @business, :status => :created, :location => @business }
      else
        flash.now[:notice] = 'Necessary fields have not been filled out'
        format.html { render :action => "new" }
        format.xml  { render :xml => @business.errors, :status => :unprocessable_entity }
      end
    end
  end

Уведомление флэш-памяти = Не заполненные необходимые поля не отображаются, если вы не обновите страницу. Ни одна из ошибок xml по умолчанию также не появляется. поэтому, если они не заполняют все правильные формы, кнопка кажется не отвечающей. Как использовать ajax для вызова этих ошибок, которые выдает ruby, и помещать их во флэш-уведомление?

1 Ответ

1 голос
/ 14 июля 2009

Вы можете обновить всю форму, используя шаблон формы, включая поле сообщений об ошибках. Таким образом, вы также получаете подсвечивание пропущенных полей и т. Д.

...