Есть ли «как», «нелюбовь» плагин для рельсов ...«Like», «Нелюбовь» плагин для рельсов
Я прошел через рейтинговые плагин ... но все они были 5 звездами рейтинга плагин ...
Есть ли «как», «нелюбовь» плагин для рельсов ...«Like», «Нелюбовь» плагин для рельсов
Я прошел через рейтинговые плагин ... но все они были 5 звездами рейтинга плагин ...
Я рекомендую создать опцию like
и dislike
, используя классическую функциональность модели голоса.
Итак, у вас есть Vote
в качестве таблицы соединений между User
и Votable Item
.
Значение голосования может работать как Vote.value + 1 = Like, Vote.value -1 = Не нравится, Vote.value = Нейтрально/не голосовало.
Ваш контроллер для votable элемента может выглядеть следующим образом:
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
И для информации каждого, этот вопрос не заслуживает того, чтобы быть отвергнуто. Это вполне справедливо.
Почему бы не создать новое булево поле с именем like
? а затем обновите его как false
для не понравилось и true
для как. Я сомневаюсь, что вы найдете плагин/драгоценный камень для этой функции.
Где бы это булево поле перейти? – mark
в базе данных или в курсе – Hugo
Умм, да ... Я хочу сказать, что это не будет случай добавления булевского поля в существующую таблицу, как было предложено. Таблица соединений будет необходима с user_id, подобным атрибутом, возможно, с полиморфным атрибутом likeable_type и логическим полем. – mark
В этом вопросе я не вижу ничего плохого.
До сих пор рейтинг остается. Просто используйте только две звезды. :) Кажется, я помню act_as_rateable, позволяющий определять количество звезд.
Я знаю ответ уже был принят, но я только что нашел драгоценный камень под названием act_as_votable, которые могли бы соответствовать вашим потребностям:
выступает в качестве Votable является рубин Gem написаны специально для моделей Rails/ActiveRecord. Основными целями этого драгоценного камня являются:
- Разрешить любую модель на голосование, как/нелюбовь, upvote/downvote и т.д.
- Разрешить любую модель голосовать. Другими словами, голоса не должны поступать от пользователя, они могут поступать из любой модели (например, группы или группы).
- Обеспечьте простой синтаксис записи/чтения.
Попробуйте Recommendable:
Большое спасибо! Я попробую это ... :) – Madhusudhan
Удачи Madhusudhan :) – Trip