ruby-on-rails - Rails 模型默认值

标签 ruby-on-rails ruby ruby-on-rails-3

这是我的模型迁移

class CreateSwimmingClassschedules < ActiveRecord::Migration
  def change
    create_table :swimming_classschedules do |t|
      t.integer :slot_id
      t.integer :coach_id
      t.integer :level_id , :default => 1
      t.string :note

      t.timestamps
    end
  end
end

我预计在我打电话后

Swimming::Classchedule.create(:coach_id=>8)

它将在表中生成一个默认的level_id。但不知怎的,它不起作用。我在使用 SQLite 的开发环境中。

我添加

 :default => 1

跑完之后

rake db:migrate

这有关系吗? 我缺少什么吗?

最佳答案

运行迁移后添加该行不会产生更改。

您的语法是正确的,但您需要使用该添加来运行迁移。考虑制作一个单独的迁移文件,如下所示:

class ChangeLevelId < ActiveRecord::Migration
  def change
    change_column :swimming_classschedules, :level_id, :integer, :default => 1
  end
end

关于ruby-on-rails - Rails 模型默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17205271/

相关文章:

ruby-on-rails-3 - 在 rails 3.2.12 中单击 simple_form View 中的提交按钮时,有没有办法传递参数?

ruby-on-rails - rails 3 : undefined method `remote_form_for'

ruby-on-rails - Rails 中的 Object#presence 有什么意义?

ruby-on-rails - Ruby On Rails 中的类列表

ruby - 为什么我在将 YAML 数据转换回工作对象时遇到 Psych::SyntaxError

ruby-on-rails-3 - Devise + OmniAuth NoMethodError UndefinedMethod 用户名

ruby-on-rails - Ruby 在运行时将变量转换为常量

ruby-on-rails - 如何在没有old_password的情况下重置ldap用户密码?使用 Net::Ldap gem 或 devise_ldap_authenticatable gem

ruby - 未初始化的常量 Mongo::Connection

ruby-on-rails - 删除用户尝试登录