Я успешно добавил функцию обзора в модель книги. Пользователь может выбрать звезду от 1 до 5 (по умолчанию 0). Я пытаюсь сделать звезду по умолчанию равной единице, чтобы при перенаправлении пользователя на страницу формы отзывов рейтинг автоматически становился одной звездой вместо 0. Я использую плагин JqueryRaty.
Для этого я сделал:
class AddRatingToReviews < ActiveRecord::Migration[6.0]
def change
add_column :reviews, :rating, :integer, default: 1
end
end
Когда я установил форму, чтобы использовать целочисленные значения вместо звезд, по умолчанию было 1, но когда я изменил его обратно на звезды (JqueryRaty), он был пустым звезда не была выбрана).
Все остальные вещи работают нормально, за исключением 1 звезды по умолчанию.
<%= simple_form_for([@book, @book.reviews.build], remote: true) do |f| %>
<%= f.error_notification %>
<%= f.error_notification message: f.object.errors[:base].to_sentence if f.object.errors[:base].present? %>
<div class="form-inputs">
<div id="rating-form" class="like-button">
<h6><label>Rating:</label></h6>
<%#= f.number_field :rating %>
</div>
<br>
<h6><%= f.label :comment %></h6>
<%= f.rich_text_area :comment %>
</div>
<br>
<div class="form-actions">
<%= f.button :submit, class: "btn btn-sm btn-success" %>
</div>
<% end %>
<script>
$('#rating-form').raty({
path: '/images/raty/',
scoreName: 'review[rating]'
});
</script>
таблица отзывов
create_table "reviews", force: :cascade do |t|
t.integer "user_id"
t.integer "book_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.integer "rating", default: 1
end