我有一个post
模型has_many :comments
。对于每个评论(_comment.html.erb
部分生成),我都有一个小星形图标,以便可以为评论加星标。
我想在用户单击星号时打开一个模式表单(引导程序)。
我知道如何创建模态。但是,如果我将该代码放在_comment
部分中,它将为每个评论呈现。
有没有办法在没有 javascript 的情况下为每个评论打开一个模式窗口(或者这可能是唯一的方法)?
_评论:
<div id="comment-#{comment.id}>
<%= comment.content %>
<a href="#starModal" id="star" data-toggle="modal"><i class="icon-star"> </i></a>
</div>
<div id="starModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="starLabel" aria-hidden="true">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 style="text-align: center;">Star Me!</h3>
</div>
<div id="starpop">
<%= render :partial => 'layouts/star_form' , :locals => {:comment => comment,:post => post} %>
</div>
</div>
发布/show.html.erb
<div class="post">
<%= @post.body %>
<% @post.comments.each do |c| %>
<%= render :partial=>'comment', :locals=>{:comment => c, :post => @post} %>
<% end %>
</div>
模式代码是正确的方法,还是可以以 DRY 的方式改进(而且对用户来说也不重(想象帖子在一个页面中有数百条评论......所以对于每个评论来说,它的数据只有一个模型的两倍) ?) ?