Rails 5 Star Rating jQuery Plugin Raty仅在表格中以第一形式显示星星

时间:2019-02-04 19:55:18

标签: jquery ruby-on-rails ruby raty

大家好,我正在使用星级评分jQuery插件Raty进行评论/评分。现在,我有一个需要查看的数据列表,然后查看方法将在boostrap模式框中。但是,评级星只出现在我列表的第一个表格中,而该星不会出现在其余表格中。仅在审核并提交第一个表格后,才会显示第二个表格的星标。例如下面的图片。

这是列表的第一种形式。星星在显示并且能够给出评级。

enter image description here

然后列表中的第二个表格中,星星从表格中消失了,只有第一个表格被审阅并提交后才会显示。

enter image description here

以下是最终结果。但目前,我能够从顶部开始逐一评分,我希望我可以随机进行评分。

enter image description here

下面是我在表格和模式框中呈现列表的代码。

<% @appointment.approve_applicants.each_with_index do |applicant, index| %>
<tr>
<td><%= index + 1 %></td>
<td><%= link_to applicant.user.fullname, applicant.user %></td>
<td><%= link_to "Reviews", applicant.build_review, "data-toggle" => "modal", "data-target" => "#detail#{applicant.id}" %></td>
<td></td>

<!--Modal-->
<div class="modal fade" id="detail<%= applicant.id %>" role="dialog">
  <div class="modal-dialog">
    <!--Modal content-->
    <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close close_book_detail" data-dismiss="modal">&times;</button>
        <%= form_for(Review.new) do |f| %>
          <%= render 'shared/error_messages', object: f.object %>
          Rating for user <%= applicant.user.fullname %>
          <div class="form-group row">
            <%= f.label :rating, class: 'col-sm-2 form-control-label' %>
            <div class="col-sm-6" id='star-rating'>
              <%=hidden_field_tag "review[rating]", '', id: "rating_star" %>
            </div>
          </div>
          <%= f.label :comment %>
          <%= f.text_area :comment, placeholder: "Please enter comment here." %>
          <%= f.submit "Save changes", class: "btn btn-primary" %>
        <% end %>
      </div>
    </div>
  </div>
</div>
</tr>
<% end %>

下面是jQuery Rating Star插件的JavaScript。

<script>
$('#star-rating').raty({
    path: '/assets',
    target     : '#rating_star',
    targetType : 'score',
    targetKeep : true
});
</script>

<script>
$('.star-rating-show').raty({
    path: '/assets/',
    readOnly: true,
    score: function() {
        return $(this).attr('data-score');
    }
});
</script>

预先感谢您对我的帮助!

0 个答案:

没有答案