2008年6月20日 ruby 做着玩(5) trouble shooting

本文介绍了在Ruby on Rails中使用数据库迁移的基本步骤,并分享了一个具体的创建系统设置表的例子。文章还探讨了如何解决在执行迁移过程中遇到的问题,以及如何在Rails开发环境中进行交互式测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


想要尝试下rails db:migrate ,看看这样管理数据库的创建脚本和升级脚本如何,于是在rails的网站找到一个例子:
  class CreateSystemSettings < ActiveRecord::Migration
  def self.up
      create_table :system_settings,     :force => true do |t|
        t.string  :name
        t.string  :label
        t.text  :value
        t.string  :type
        t.integer  :position
      end
      SystemSetting.create :name => "notice", :label => "Use notice?", :value => 1
  end

  def self.down
    drop_table :system_settings
  end
end
  我的执行步骤是这样的:
  1. 运行instantrails,
  2. 打开 instantrails提供的ruby console内执行
  3. 执行 ruby script/generate migration CreateSystemSetting ,修改001__CreateSystemSetting.rb
  4. rake  db:migrate ,但是它总是报错,"SystemSetting constant undefined "

 原因是还没有生成model,只要 ruby script/generate model SystemSetting ,就ok了。
 学会了,下一步做serial的model和migration测试。
  同时也了解到rails development environment。我从instantrails 的相应按钮点开的。
  ruby有irb,可以让代码交互运行,更快的查看代码执行的效果
  rails 有 rails development environment ,道理相同。
  在 rails development environment 内可以直接执行比如  SystemSetting.create :name => "notice", :label => "Use notice?", :value => 1,不需要完整的require之类的,它都已经建立完毕了。当然 drop_table不能直接执行,因为它来自 ActiveRecord::Migration ,但是可以通过ActiveRecord::Migration.drop_table 来跑。
 
 参考:
  1. 不错的turorials :http://www.tutorialspoint.com/ruby-on-rails-2.1/rails-migrations.htm
  2. 这里还有一个视频:http://www.rubyonrails.org/screencasts,也很不错。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值