Rails:每个链接的模态不同

时间:2015-08-11 12:51:47

标签: ruby-on-rails ruby-on-rails-4 modal-dialog

我认为我有这种结构:

<ul>
  <% @categories.each do |category| %>
    <li> <%= category.name %> <a href='#'>Edit</a> </li> 
  <% end %>
</ul>

现在,我想在单击“编辑”时弹出一个模态,并在此模式中放置一个表单来编辑相应的类别。我想避免为循环中的每个元素生成一个模态,我希望有一个泛型模态,并且每次使用特定参数调用它。这可能吗?

2 个答案:

答案 0 :(得分:2)

对js响应使用remote true

<ul>
  <% @categories.each do |category| %>
     <li> <%= category.name %><%= link_to 'Edit', edit_category_path(category), remote: true %> </li> 
  <% end %>
</ul>
<div class='modal-fade' id="edit-modal"></div>

创建一个部分页面_edit.html.erb 编写bootstarp模态结构并编辑表单并在表单中写入remote:true

 eg. <%= form_for @category, remote: true do %>......<%end%>

创建edit.js文件并写如下

$('#edit-modal').html("<%= j render 'edit' %>");
$('#edit-modal').modal('show');

再创建一个文件create.js

$('#edit-modal').modal('hide');

答案 1 :(得分:0)

只需创建一个远程链接:

link_to "edit", edit_category_path(category), class: "btn btn-mini", remote: true

然后在您的视图中添加edit.js.erb文件:

$("#myModal").html("<%= j render "new"%>");
$('#myModal').modal('show');

并将您的edit.html和new.html文件更改为_new.html和edit.html