2012-02-21 2 views
0

В настоящее время я пытаюсь создать счетчик рейтинга, который имеет функцию вверх или вниз. Я смущен, если я должен добавить столбец в свой пост, чтобы показать, что человеку нравится сообщение или создать отдельную модель, чтобы показать счетчик рейтинга, но счетчик принадлежит этому сообщению. Что-то вроде линий Reddit или даже Stackoverflow. Кроме того, как бы я начал использовать этот счетчик оценок, какой бы метод ни был правильным? Всем спасибо.Rails: рейтинг вверх или вниз счетчик, потерянный

Edit - В настоящее время застрял на том, как двигаться дальше отсюда

Рейтинг

class Rating < ActiveRecord::Base 
    attr_accessible :post_id, :user_id, :rating 
    has_many :post 
    has_many :users 

    validates :post_id, presence: true 

end 

Рейтинг Контроллер

class RatingController < ApplicationController 

    def create 
    @post = Post.find(params[:id]) 
    @post.rating_count = @post.rating_count + 1 
    end 
end 

Рейтинг Форма

<%=form_tag @rating do %> 
<%=submit_tag :Rating%> 
<%end%> 

ответ

0

Вы должны создать отдельную модель, в которой будут храниться user_id, post_id и рейтинговые столбцы.

class Post < ActiveRecord::Base 
    has_many :ratings 
end 

class Rating < ActiveRecord::Base 
    has_many :posts 
    has_many :users 
end 

Тогда вам придет иметь возможность получать всю рейтинг за соответствующее сообщение, рейтинг для `s столба соответствующего пользователя и так далее.

Вы можете даже создать полиморфное отношение, чтобы обеспечить функциональность рейтинги для других моделей:

class Post < ActiveRecord::Base 
    has_many :ratings, as: :rateable 
end 

class Rating < ActiveRecord::Base 
    has_many :rateable, polymorphic: true 
    has_many :users 
end 
+0

Может ли вы смотреть на редактировании? Я смущен тем, куда идти. Спасибо огромное! – Kellogs

+0

Вы можете определить 2 mothods в PostsController, например rate_up и rate_down. В каждом из них вы должны проверить для аутентифицированного пользователя и для допустимого сообщения, а затем создать модель рейтинга в зависимости от того, какой метод вызывается. Пути для оценки должности будут, например,/posts /: id/rate_up и/posts /: id/rate_down. – Hck

 Смежные вопросы

  • Нет связанных вопросов^_^