AJAX, Rails и динамическая загрузка форм - PullRequest
2 голосов
/ 24 октября 2008

У меня есть приложение rails, которое набирает обороты, но у меня серьезная головная боль, с которой приходится иметь дело. Это базовое приложение для управления активами - пользователи загружают свои фотографии, PDF-файлы, видео и т. Д., И система позволяет им управлять представлением этого актива.

Я начал с довольно стандартного представления rails - только то, что генерируется rails - для index.html.erb. У меня есть часть, которая отображает миниатюру для каждого из активов и что-то вроде этого:

<div id="preview">  </div>

Я хочу, чтобы миниатюра была кликабельной (достаточно легкой), но когда пользователь нажмет эту кнопку, содержимое div будет заполнено, ну, по сути, edit.html.erb, но я предполагаю это должно быть сделано как частичное. Я уже справился с этим с помощью простого JavaScript.

У меня есть доступ к предварительной публикации новой книги «Agile Development on Rails», которую любой может получить через издателя, но глава об AJAX очень минимальна и предполагает больший опыт работы с этими вещами, чем я это мой первый набег на javascript и рельсы.

ОБНОВЛЕНИЕ: В ответ на «что такое вопрос» «ответ», хотя я думал, что это было довольно ясно:

Что мне нужно поместить в частичку миниатюры, чтобы щелкнуть по ней, чтобы загрузить форму редактирования в div?

1 Ответ

6 голосов
/ 24 октября 2008

вам нужно использовать link_to_remote:

<%=    link_to_remote image_tag('whatever.jpg'), 
       {:controller => 'something', :action => 'replace_thumbnail', :id => @thumbnail.id}, 
       :update => 'preview' %>

и в контроллере вы должны выполнить это действие:

def replace_thumbnail
  image = Image.find(params[:id])
  render :partial => 'edit', :object => image, :layout => false
end

убедитесь, что ваш партиал имеет имя _edit.html.erb

...