Rails嵌套布局 - 可以使用turbolinks 3替换部分?

时间:2015-06-20 05:00:40

标签: ruby-on-rails turbolinks

在学习了一些react-router和ember routing之后,我真的很感激嵌套ui的想法。

试图找出一种将部分推送到本地'中的div的好方法。 rails并且偶然发现了这种简单的编辑方式。

计划/ 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文件,然后使用jquery强制进行dom更新要好得多。使用简单的html制作嵌套标签内容或主/详细页面等内容非常方便。

但是,根据上面的代码,我如何在Turbolinks.visit电话中访问帖子ID?目前我只是将它硬编码为我知道存在的id,看看我是否可以把它拿起来工作。但现在我无法弄清楚如何将帖子ID放入嵌套字符串中。

1 个答案:

答案 0 :(得分:0)

You could pass the post ID via string interpolation. Try the following code:

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