Модальное окно для добавления связанных записей в ruby ​​на рельсах - PullRequest
0 голосов
/ 02 июля 2011

У меня есть следующие модели

 class Post < ActiveRecord::Base
    ...
    has_many :tags
 end

 class Tag < ActiveRecord::Base
    belongs_to :post
 end

Контроллер Post имеет типичные действия CRUD плюс индекс. Опубликовать новое представление (используя simple_form и slim:

 = simple_form_for(@post) do |f|
    = f.input :title, :error => false
    = f.input :body, :as => :text, :error => false
    = f.association :tags, :include_blank => true
    div
       =link_to "Add a new tag", new_tag_path
    = custom_button "Save"
    | or 
    = link_to "Cancel", posts_path

Проблема в ссылке «Добавить новый тег». Я хотел бы предоставить модальное окно с формой создания тегов. После того как пользователь заполнил форму и сохранил новый тег, я бы отобразил обратно форму создания поста и обновил список тегов f.association: вновь созданным тегом.

Как мне реализовать эту функцию? Мне не ясно, как обновить только список тегов: после создания нового тега, не теряя при этом никакой другой информации, которую пользователь мог вставить в форму (например, заголовок сообщения) перед созданием нового тега.

Спасибо.

1 Ответ

0 голосов
/ 03 июля 2011

может быть, вы можете пойти с этим:

  • отображение всплывающего окна создания тега
  • отправить AJAX-запрос на создание тега (отдельный TagsController)
  • отобразить индикатор прогресса
  • добавить параметр в теги select и пометить его как выбранный при успешном обратном вызове AJAX
  • так что все происходит без перезагрузки страницы

... или (если наличие модального окна не является обязательным) используйте что-то вроде этого: http://railscasts.com/episodes/258-token-fields:)

...