Вопрос

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

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

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

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

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

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

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

Это было полезно?

Решение

вам нужно использовать 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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top