2015-06-20 6 views
0

После изучения некоторой реакции-маршрутизатора и маршрута ember, я действительно ценю идею вложенных ui.Рельсы вложенные макеты - можно использовать turbolinks 3 заменить частичные?

Пытается выяснить, как можно протолкнуть частички в divs в «родные» рельсы и наткнулся на этот простой способ редактирования чего-то на месте.

планы/index.html.erb

<% @posts.each do |post| %> 
    <div id="content"> 
    <a onclick="Turbolinks.visit('/posts/8/edit', {change: 'content'})" >Edit</a> 
    </div> 
<% end %> 

планы/edit.html.erb

<div id="content"> 
    <%= form_for @post do |form| %> 
    <%= form.text_field :name %> 
    <% end %> 
</div> 

Поскольку оба файла имеют id="content" он правильно ставит edit.html.erb содержимое в файл индекса на месте сохраняя остальную часть состояния страницы.

Мне нравится, как это чувствуется, гораздо приятнее, чем создание удаленного запроса, добавление действия контроллера, создание нового файла js.erb, а затем принудительное обновление dom с помощью jquery. Было бы очень удобно создавать что-то вроде вложенного содержимого с вкладками или страниц мастера/подробностей с простым html.

Однако с кодом выше, как я могу получить доступ к идентификатору сообщения в вызове Turbolinks.visit? В настоящее время я просто жестко закодировал его до идентификатора, который я знаю, чтобы узнать, смогу ли я его запустить и работать. Но теперь, когда я не могу понять, как поместить идентификатор сообщения во вложенную строку.

ответ

0

Вы можете передать идентификатор сообщения через интерполяцию строк. Попробуйте следующий код:

<% @posts.each do |post| %> 
    <div id="content"> 
    <a onclick="Turbolinks.visit("/posts/#{post.id}/edit", {change: 'content'})" >Edit</a> 
    </div> 
<% end %> 
+0

Это приводит к следующему пути: 'HTTP: // локальный: 3000/сообщений/# {post.id}/edit' – tehfailsafe

+0

Спасибо за редактирование, но не понимая, не было проблема. Если двойные кавычки обертывают одинарные кавычки, интерполяция строк не работает, она буквально добавляет '# {post.id}' к запросу. – tehfailsafe

Смежные вопросы