局部变量在基础中没有正确显示显示部分

时间:2014-02-26 23:08:38

标签: ruby-on-rails ruby-on-rails-4 zurb-foundation partials

我在视图中有以下代码:

<% @post_comments.each do |comment| %>

  <%= render partial: "flags/flag_comment", locals: { comment: comment } %>

<% end %>

这是我的部分内容:

<div id="flagComment" class="reveal-modal" data-reveal>

    <%= simple_form_for [comment, @flag] do |f| %>

      <%= f.input :reason %>
      <%= f.button :submit %>

    <% end %>

    </div>

<a href="#" data-reveal-id="flagComment" data-reveal>Flag</a>

然而,本地变量&#39;评论&#39;没有设置正确。

如果我将<%= comment.id %>放入部分内容中,我会获得相同的ID&#39; 9&#39;每次我点击“标记”#39;链接在我看来。

我使用Zurb的基础来制作“揭示”,以防万一。

有人能解释我的错误吗?

1 个答案:

答案 0 :(得分:1)

那是因为所有部分div id="flagComment" id都设置为相同的值。

数据显示将查找具有id=flagComment期望具有唯一ID的div的div。 如果您有多个具有相同ID的div,则data-reveal将选择具有匹配ID的第一个div。 因此,每次单击Flag链接时,您都会获得相同的id 9(具有给定id的第一个div)。

要解决这个问题,我建议每个评论都有不同的ID,

例如:你可以做这样的事情

<%= content_tag :div, :id => "flagComment_#{comment.id} ..... %>
...
<% end %>

以上每次都会设置不同的ID。您也可以在data-reveal-id代码中设置a href