C'è qualche plug-in "come", "antipatia" per le rotaie ..."Mi piace", "Dislike" plug-in per le rotaie
Sono andato con i plugin di rating ... ma tutti loro erano 5 i plugin di stelle ...
C'è qualche plug-in "come", "antipatia" per le rotaie ..."Mi piace", "Dislike" plug-in per le rotaie
Sono andato con i plugin di rating ... ma tutti loro erano 5 i plugin di stelle ...
Si consiglia di creare l'opzione like
e dislike
adottando la funzionalità classica del modello di voto.
Quindi si dispone di Vote
come tabella di unione tra User
e Votable Item
.
Un valore di voto può funzionare come Vote.value + 1 = Like, Vote.value -1 = Dislike, Vote.value = Neutral/Non ha votato.
Il controller per il tuo articolo votable può assomigliare a questo:
def like
get_vote
@vote.value += 1 unless @vote.value == 1
@vote.save
respond_to do |format|
format.html
format.js
end
end
def dislike
get_vote
@vote.value -= 1 unless @vote.value == -1
@vote.save
respond_to do |format|
format.html
format.js
end
end
private
def get_vote
current_item = @item.detect{|r| r.id == params[:id].to_i}
@vote = current_item.votes.find_by_user_id(current_user.id)
unless @vote
@vote = Vote.create(:user_id => current_user.id, :value => 0)
current_item.votes << @vote
end
end
E per info di tutti, questa domanda non meritava di essere bocciato. È completamente valido.
Perché non creare un nuovo campo booleano denominato like
? e quindi aggiornarlo come false
per per antipatia e true
per come. Dubito che tu trovi un plugin/gemma per questa funzionalità.
Dove sarebbe questo campo booleano andare? – mark
nel database o nel corso – Hugo
Umm, sì ... Il mio punto è che non si tratta di aggiungere un campo booleano a una tabella esistente come suggerito. Sarebbe necessaria una tabella di join con user_id, likeable_id, facoltativamente polimorfo likeable_type e campo booleano. – mark
Non vedo nulla di sbagliato nella domanda.
Il voto negativo continua a essere valutato. Solo usando solo due stelle. :) Mi sembra di ricordare che act_as_rateable consente il numero di definizione di una stella.
so una risposta è già stata accettata, ma ho appena trovato una gemma chiamata act_as_votable che potrebbero soddisfare le vostre esigenze:
agisce come Votable è un rubino gemma scritto appositamente per i modelli Rails/ActiveRecord. Gli obiettivi principali di questo gioiello sono:
- Consenti qualsiasi modello che sarà votata, come/antipatia, upvote/downvote, ecc
- Lasciare che qualsiasi modello di voto. In altre parole, i voti non devono venire da un utente, possono provenire da qualsiasi modello (come un gruppo o una squadra).
- Fornisce una sintassi di facile lettura/scrittura.
Prova Recommendable:
grazie mille Viaggio! Ci proverò ... :) – Madhusudhan
Buona fortuna Madhusudhan :) – Trip