Я хочу создать систему рецензирования, например, Google Play, для моего приложения из библиотеки, что означает, что 1 пользователь просто может отправить рецензию 1 раз, в следующий раз будет редактироваться рецензия
https://imgur.com/a/RciVuln
Это то, что я до сих пор:
В книге / show.html.erb
<div class="col-md-7 col-md-offset-1">
<% @book.reviews.each do |r| %>
<div class = "reviews" >
<div class="star-rating" data-score= <%= r.rating %></div>
<%= link_to r.user.name, r%>
<p><%= r.comment %></p>
</div>
<% end %>
</div>
</div>
<script>
$('.star-rating').raty({
path: '/assets/',
readOnly: true,
score: function() {
return $(this).attr('data-score');
}
});
</script>
В reviews_controller
def update
@reviews = Reviews.find_by(params[:id])
@review.update_attributes(reviews_params)
@book = Book.find(@review.book_id)
flash[:success] = "Comment updated"
redirect_to @book
end
def edit
@review = Review.find(params[:id])
end
В reviews / edit.html.erb:
<%= form_for(@review) do |f| %>
<%= f.error_notification message:
f.object.errors[:base].to_sentence if
f.object.errors[:base].present? %>
<div class="field">
<div id="star-rating"></div>
</div>
<%= f.label :comment %>
<%= f.text_area :comment, class: 'text-area' %>
<%= f.hidden_field :book_id%>
<div>
<div class="form-actions">
<%= f.button :submit, class:"btn btn-primary" %>
</div>
<% end %>
<script>
$('#star-rating').raty({
path: '/assets/',
scoreName: 'review[rating]'
});
</script>
Я не знаю, есть ли у rails функция для проверки идентификатора текущего пользователя с помощью идентификатора обзора пользователя для этой книги