¿Hay algún plug-in "como", "aversión" para los carriles ...plug-in "Me gusta", "No me gusta" para los carriles
Fui a través de plugins de calificación ... pero todos ellos eran 5 estrellas plugins de calificación ...
¿Hay algún plug-in "como", "aversión" para los carriles ...plug-in "Me gusta", "No me gusta" para los carriles
Fui a través de plugins de calificación ... pero todos ellos eran 5 estrellas plugins de calificación ...
Recomiendo crear la opción like
y dislike
adoptando la funcionalidad clásica de modelo de voto.
Así que tiene Vote
como una tabla de unión entre User
y Votable Item
.
Un valor de voto puede funcionar como Vote.value + 1 = Me gusta, Vote.value -1 = No me gusta, Vote.value = Neutral/No vota.
Su controlador para su artículo VOTable puede tener este aspecto:
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
Y para información de todos, esta pregunta no merecía ser votado hacia abajo. Es completamente válido.
¿Por qué no crear un nuevo campo booleano llamado like
? y luego actualizarlo como false
para dislike y true
para como. Dudo que encuentres un plugin/gema para esta funcionalidad.
¿Dónde este campo booleano ir? – mark
en la base de datos o curso – Hugo
Umm, sí ... Mi punto es que no sería un caso de agregar un campo booleano a una tabla existente como se sugiere. Se requerirá una tabla de unión con user_id, likeable_id, opcionalmente polymorphic likeable_type y boolean. – mark
No veo nada de malo con la pregunta.
La votación hacia arriba sigue siendo la calificación. Solo usando solo dos estrellas. :) Me parece recordar acts_as_rateable que permite el número de definición de estrella.
sé una respuesta ya ha sido aceptado, pero me acaba de encontrar una joya llamada act_as_votable que podrían ajustarse a sus necesidades:
actúa como VOTable es una joya de Ruby escrita específicamente para los modelos de rieles/ActiveRecord. Los principales objetivos de esta joya son:
- permitir que cualquier modelo que se va a votar, como/aversión, upvote/downvote, etc.
- Permitir que cualquier modelo de voto. En otras palabras, los votos no tienen que provenir de un usuario, pueden provenir de cualquier modelo (como un grupo o equipo).
- Proporcionan una sintaxis fácil de escribir/leer.
Trate recomendable:
muchas gracias Trip! Voy a probar esto ... :) – Madhusudhan
Buena suerte Madhusudhan :) – Trip