ActiveRecord 在迁移文件中添加评级范围

Die*_*ego 2 activerecord ruby-on-rails

class AddRatingToBooks < ActiveRecord::Migration
  def up
    add_column :books, :rating, :integer
  end

  def down
    remove_column :books, :rating
end
Run Code Online (Sandbox Code Playgroud)

我的 中有以下代码片段db/migrate/,我正在尝试添加ratings到我的books表中,其范围为0-100我不确定如何在此处添加它,我能找到的只是查询与范围。我确信这很简单,只是我还没有做到。

Joe*_*wer 6

您无需在迁移文件中指定整数值的范围。迁移文件仅用于添加数据库列来存储评级。这不是添加验证的地方。

您应该使用您的Book模型来指定验证,以确保您ratings落在某个范围内。像这样的东西:

class Book < ActiveRecord::Base
  validates :rating, :inclusion => { :in => 0..100 }
end
Run Code Online (Sandbox Code Playgroud)

我强烈建议您阅读有关迁移验证的 Rails 指南。