I’m trying to use acts_as_rated and getting this error:
Mysql::Error: #42S22Unknown column ‘ratings.post_id’ in ‘where
clause’: SELECT * FROM ratings WHERE (ratings.post_id = 14 AND
(rater_id = 2)) LIMIT 1
not sure why it’s looking for a post_id column. shouldn’t it be
looking for rated_id ?
here’s my model being rated
class Post < ActiveRecord::Base
acts_as_rated :rater_class => ‘Inker’, :rating_range => 0…5
has_many :ratings
has_one :rating_statistic
…
“Inker” is my “User” model
I think I did the migration correctly b/c my schema has the necessary
tables and columns
create_table “posts”, :force => true do |t|
…
t.column “rating_count”, :integer
t.column “rating_total”, :integer, :limit => 10, :precision
=> 10, :scale => 0
t.column “rating_avg”, :decimal, :precision
=> 10, :scale => 2
end
create_table “rating_statistics”, :force => true do |t|
t.column “rated_id”, :integer
t.column “rated_type”, :string
t.column “rating_count”, :integer
t.column “rating_total”, :integer, :limit => 10, :precision =>
10, :scale => 0
t.column “rating_avg”, :decimal, :precision =>
10, :scale => 2
end
add_index “rating_statistics”, [“rated_type”, “rated_id”], :name =>
“index_rating_statistics_on_rated_type_and_rated_id”
create_table “ratings”, :force => true do |t|
t.column “rater_id”, :integer
t.column “rated_id”, :integer
t.column “rated_type”, :string
t.column “rating”, :integer, :limit => 10, :precision =>
10, :scale => 0
end
add_index “ratings”, [“rater_id”], :name =>
“index_ratings_on_rater_id”
add_index “ratings”, [“rated_type”, “rated_id”], :name =>
“index_ratings_on_rated_type_and_rated_id”
any help is appreciated