Как установить рейтинг звезды по умолчанию на 1? - PullRequest
0 голосов
/ 23 апреля 2020

Я успешно добавил функцию обзора в модель книги. Пользователь может выбрать звезду от 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
...