class CreatePostVotes < ActiveRecord::Migration
def change
create_table :post_votes do |t|
t.string :user_ip
t.integer :post_id
t.integer :value
t.timestamps
end
add_index :post_votes, [:user_ip, :post_id], :unique => true
add_index :post_votes, :user_ip
add_index :post_votes, :post_id
end
end
#validations
validates :post_id, uniqueness: {scope: :user_ip}
validates :value, inclusion: { in: [1, -1], message: "%{value} is not a valid vote" }
Как то так. Хотя выше уже написали, это просто для наглядности.