В среде «паутины два нуля» очень актуален вопрос рейтингов, плюсов, звезд, кармы и других систем самоутверждения.
Если правильно подойти к этой теме, то рейтинги – это очень крутая и нужная вещь.
Сейчас многие уже понимают, что рейтинг – это не только банальное увеличение плюсов/минусов, но и скрытая от глаз активность пользователей, авторитет автора и все такое.
хороший статья написал в этой теме альфа .
Но я хотел бы обсудить только стандартные инструменты, которые есть у сообщества Rails. Мы говорим о плагинах.
Погуглив 10 минут, я нашел только два.
Ни один из них мне не подошел =).
На всякий случай вот краткий обзор этих плагинов (это скорее переведенные выдержки из обзоров — этими плагинами я не пользовался и не планирую).
Поделитесь, пожалуйста, своим опытом и ссылками на другие достижения создателей плагинов в комментариях.
Действует_как_оценено Ссылки по теме: devblog.famundo.com/articles/2007/02/04/a-new-rails-plugin-acts_as_rated www.rubynaut.net/articles/2007/03/18/rails_ajax_rating_system_part_1 Rubyforge.org/projects/acts-as-rated Основным заявленным преимуществом плагина является множество настраиваемых параметров и кэширование, что уменьшает количество обращений к базе данных.
Монтаж
установка скрипта/плагина svn://rubyforge.org/var/svn/acts-as-rated/trunk/acts_as_ratedПример использования
class Book < ActiveRecord::Base
acts_as_rated
end
u = User.find_by_name "guy"
b = Book.find "Catch 22"
b.rate 5, u
u = User.find_by_name "john"
b.rate 3, u
b.rating_average # => 4
Book.find_by_rating 2.3 # => [<Book:"Catch 22">]
b.find_rated_by User.find_by_name("guy") # => [<Book:"Catch 22">]
Плагин поставляется с пакетом миграций, который позволяет легко добавить его в любой проект. Тесты также включены.
Основные функции
* Встраивание в любую модель * Данные о рейтинге могут храниться как во внешней таблице, так и непосредственно в базе данных модели.
* Ограничение лимитов рейтинга
* Подсчет среднего и общего рейтинга и количества голосов
* Поиск объектов по рейтингу или границам рейтинга, а также по рейтингу
Acts_as_rateable
Ссылки по теме: satishchauhan.wordpress.com/2007/08/24/star-rating-in-ruby-on-rails www.naffis.com/2006/8/31/rails-ajax-star-rating-system Rubyforge.org/projects/rateableplugin
Монтаж
установка скрипта/плагина svn://rubyforge.org/var/svn/rateableplugin/trunk миграция сценарий/генерация миграции add_ratings def self.up
create_table :ratings do |t|
t.column :rating, :integer # You can add a default value here if you wish
t.column :rateable_id :integer, :null => false
t.column :rateable_type, :string, :null => false
end
end
def self.down
drop_table :ratings
end
Пример использования
class SillyWalk < ActiveRecord::Base
# attributes: name, inventor
acts_as_rateable
end
SillyWalk.new(:name => "Not Very Silly", :inventor => "Mr. Pudey").
save
SillyWalk.new(:name => "A Bit Silly", :inventor => "Mrs. Two-Lumps", :rating => 3).
save
SillyWalk.new(:name => "Quite Silly", :inventor => "Mr. Teabag", :rating => 5).
save
# To update the rating after creation of the initial record.
SillyWalk.find_by_name("Not Very Silly").
rate(1)
# You could also do this
SillyWalk.find_by_name("Not Very Silly").
rating = 1
# Retreive the rating
SillyWalk.find_by_name("Not Very Silly").
rating # => 1
# Find silly walks with a rating of at least 3
SillyWalk.find_all_by_rating(3.-1) # => ["A Bit Silly", "Quite Silly"]
# Find silly walks with a rating of 5 (only)
SillyWalk.find_all_by_rating(5) # => ["Quite Silly"]
# Find silly walks with a rating of 1 or 5
SillyWalk.find_all_by_rating([1,5]) # => ["Not Very Silly", "Quite Silly"]
# Find silly walks with a rating between 3 and 5, inclusive
SillyWalk.find_all_by_rating(3.5) # => ["A Bit Silly", "Quite Silly"]
# You can also mix specific ratings and ranges.
SillyWalk.find_all_by_rating([1,3.5]) # => ["Not Very Silly", "A Bit Silly", "Quite Silly"]
Основные функции
* Подходит для любой модели.методы *rate(int) - оценивает объект *рейтинг= - то же самое * рейтинг - возвращает рейтинг объекта * find_all_by_rating — возвращает все объекты, удовлетворяющие условию * find_by_rating — возвращает первый объект, удовлетворяющий условию Заключение Эти два представителя весьма ограничены и справляются лишь с задачей дать человеку возможность сказать хорошо/плохо.
Это конечно что-то, но явно недостаточно.
Поэтому вывод - написать что-то свое.
Теги: #ruby #rails #ruby onrails #плагины #рейтинг #web 2.0 #web 2.0 #web 2.0 #ruby
-
Зарабатывайте Деньги Дома С Помощью Блогов
19 Oct, 24 -
В Google Docs Появился Редактор Формул
19 Oct, 24 -
Дятлы
19 Oct, 24 -
Хранение Закладок – Делимся Опытом
19 Oct, 24