Может ли представление формы рельсов избежать перехода от текущего представления? - PullRequest
2 голосов
/ 12 марта 2009

У меня есть немного волшебства javascript для создания и скрытия div на лету, когда пользователь взаимодействует со страницей. Каждый div содержит представление некоторой части моего приложения, и у каждого экземпляра модели в этих представлениях есть владелец. Если человек, просматривающий страницу, НЕ является владельцем, он просто видит данные. Однако, если пользователь является владельцем данных, он получает представление редактирования.

Возможно, будет возможно скрыть состояние всех элементов div и заново отобразить страницу точно так же, как это было, когда пользователь отправляет изменения, но я бы предпочел простой и быстрый способ провести транзакцию что-то вроде: пользователь нажимает кнопку отправки, сервер обрабатывает изменения и отправляет подтверждение, незначительные изменения на экране высвечивают уведомление о завершении транзакции.

У кого-нибудь есть указатель на рабочий пример? Предел для реализации будет состоять в том, проще ли сделать то, о чем я здесь говорю, или просто укусить пулю и перенести состояние div через транзакцию.

Ответы [ 2 ]

3 голосов
/ 12 марта 2009

Как отметил Фрейнд, remote_form_for - это путь. Соедините это с чертой RJS, и вы готовы к работе:

# Form
- remote_form_for(@obj, :url => obj_path(@obj)) do |f|

  = f.text_field :some_attribute
  = f.submit "Submit"


# Controller action

def edit
  respond_to do |wants|
    wants.html { }
    wants.js {
      render :update do |page|
        page.replace_html :some_div, "Some content"
      end
    }
  end
end
0 голосов
/ 12 марта 2009

Похоже, все, что вам нужно, это немного магии Ajax. Взгляните на remote_form_for или любого другого помощника по прототипу .

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