Je suis en train d'essayer d'implémenter un système de notation dans mon application, j'ai essayé Rateit mais je n'ai pas réussi à le faire fonctionner, alors j'ai pensé essayer de construire le mien, en plus de cette façon j'espère apprendre beaucoup plus en comprenant le processus
Actuellement, j'essaie de transmettre la valeur de l'étoile cliquée
Formulaire
<%= form_for @rating do |f| %>
<%= f.hidden_field :ratings, :id => "hiddenRating", :value => '' %>
<%= f.hidden_field :user_id, :value => current_user.id %>
<%= f.hidden_field :recipe_id, :value => @recipe.id %>
<%= f.submit "Soumettre" %>
<% end %>
JS
$(document).ready(function(){
$('#firstStar').click(function(){
$('#hiddenRating').value = 1;
});
});
Donc l'idée est que si un utilisateur clique sur la première étoile, une valeur de 1 doit être transmise en tant que valeur de notation dans le formulaire, cela ne se produit pas car je ne sais pas quoi passer
:value => ''
Je suis sûr qu'il y a des moyens beaucoup meilleurs de le faire, mais comme je l'ai dit je veux apprendre morceau par morceau pour qu'à la fin je puisse tout assembler, bien sûr si quelqu'un a une meilleure suggestion alors s'il vous plaît laissez-moi savoir.
Édition
Contrôleur
def new
@rating = Rating.new
respond_to do |format|
format.html # new.html.erb
format.json { render json: @rating }
end
end
def create
@rating = Rating.new(params[:rating])
respond_to do |format|
if @rating.save
format.html { redirect_to @rating, notice: 'La notation a été créée avec succès.' }
format.json { render json: @rating, status: :created, location: @rating }
else
format.html { render action: "new" }
format.json { render json: @rating.errors, status: :unprocessable_entity }
end
end
end