Czy istnieje „jak”, „niechęć” plugin dla szyn ...„Like”, „Niechęć” plugin dla szyn
przeszedłem wtyczek ratingowe ... ale wszystkie z nich były 5-gwiazdkowe wtyczek ocena ...
Czy istnieje „jak”, „niechęć” plugin dla szyn ...„Like”, „Niechęć” plugin dla szyn
przeszedłem wtyczek ratingowe ... ale wszystkie z nich były 5-gwiazdkowe wtyczek ocena ...
Polecam tworzenie opcji like
i dislike
, biorąc na siebie klasyczną funkcję modelu głosowania.
Masz Vote
jako tabelę łączenia między User
i Votable Item
.
Wartość głosowania może działać jako Głosowanie. Wartość + 1 = Jak, Głosowanie.value -1 = Nie podoba mi się, Głosowanie.value = Neutralne/Nie głosowało.
Twój kontroler do votable elementu może wyglądać następująco:
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
I za każdym informacji, kwestia ta nie zasługuje na przegłosowana. Jest całkowicie poprawny.
Dlaczego nie wystarczy utworzyć nowe pole o nazwie boolowskiej o nazwie like
? a następnie zaktualizować jako false
dla nie lubię i dla , takich jak. Wątpię, czy znajdziesz wtyczkę/klejnot dla tej funkcjonalności.
Gdzie to logiczna pole iść? – mark
w bazie danych lub kursie – Hugo
Umm, tak ... Chodzi mi o to, że nie byłoby przypadkiem dodanie pola boolowskiego do istniejącej tabeli zgodnie z sugestią. Tabela złączna byłaby wymagana z user_id, likeable_id, opcjonalnie polimorficznego typu likeable_type i boolean. – mark
Nic nie widzę w tym pytaniu.
Głosowanie up to wciąż ocena. Wystarczy użyć tylko dwóch gwiazdek. :) Wydaje mi się, że remember_as_rateable pozwala na określenie liczby gwiazdek.
znam odpowiedź została już przyjęta, ale ja po prostu znaleźć klejnot zwany act_as_votable które mogłyby pasować do Twoich potrzeb:
działa jako Votable Gem Ruby jest specjalnie napisany dla modeli Rails/ActiveRecord. Główne cele tego klejnotu to:
- Pozostawić dowolny model pod głosowanie, jak/niechęci, upvote/downvote itp
- Pozostawić każdy model do głosowania. Innymi słowy, głosy nie muszą pochodzić od użytkownika, mogą pochodzić z dowolnego modelu (takiego jak grupa lub zespół).
- Zapewnia łatwą do napisania/odczytu składnię.
Spróbuj polecana:
bardzo dziękuję! Spróbuję tego ... :) – Madhusudhan
Powodzenia Madhusudhan :) – Trip