参考web敏捷开发的书有个问题!

MH2o 2008-09-10 11:01:58
书中讲到添加字段的时候我按照书中的内容编写了添加的脚本 002
class AddPrice < ActiveRecord::Migration
def self.up
add_column :products, :price, :decimal, :precision => 8, :scale => 2, :default => 0
end

def self.down
remove_column :products, :price
end
end


但是在执行的时候报一下的错误:
== AddPrice: migrating ========================================================
-- add_column(:products, :price, :decimal, {:precision=>8, :default=>0, :scale=>2})
rake aborted!
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occured while evaluating nil.[]

(See full trace by running task with --trace)

我看了一下,ruby和rails的版本都是和书中的一样的。请问这个是什么原因?
...全文
113 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
MH2o 2008-09-12
  • 打赏
  • 举报
回复
谢谢楼上的,我在使用了InstantRails1.7版本后正常了
D:\InstantRails\rails_apps\work\depot>ruby -v
ruby 1.8.6 (2007-03-13 patchlevel 0) [i386-mswin32]

D:\InstantRails\rails_apps\work\depot>rails -v
Rails 1.2.3
以上是我使用的版本。
taito 2008-09-11
  • 打赏
  • 举报
回复
反复实验过你的 migration 脚本。都无错误,可能是你的开发工具或者你的迁移的命令输入的问题。

到于ruby 和 rails版本。你可以升级试试。我在ruby 1.8.6 ,rails 2.1.0 版本下测试是正常的。
MH2o 2008-09-10
  • 打赏
  • 举报
回复
另外gem该怎么安装?我是下载的InstantRails直接使用的。
MH2o 2008-09-10
  • 打赏
  • 举报
回复
gem 的版本不对么?怎么看gem的版本啊,可是我都是按照书上的例子进行的。
另外再问一下gem是什么东东。
偶绝对菜鸟。
youqiong 2008-09-10
  • 打赏
  • 举报
回复
更新下gem version 到最新最新版本
参考
http://www-128.ibm.com/developerworks/forums/thread.jspa?threadID=206980
谢谢,共同学习了
MH2o 2008-09-10
  • 打赏
  • 举报
回复
是我的ruby的版本太老了?书上说使用rails1.2而且我查看ruby和rails的版本都跟书上提到的是一样的呀。
MH2o 2008-09-10
  • 打赏
  • 举报
回复
回楼上的gem的版本如下
D:\InstantRails\rails_apps\work\depot>gem --version
0.8.11

products表已经建立了。我也把rails的版本升级到1.2.3
ruby的版本是ruby 1.8.4 (2005-12-24) [i386-mswin32]

products表已经建立了
001_create_products.rb
class CreateProducts < ActiveRecord::Migration
def self.up
create_table :products do |t|
# t.column :name, :string

t.column :title, :string

t.column :description, :text

t.column :image_url, :string
end
end

def self.down
drop_table :products
end
end

002_add_price.rb
class AddPrice < ActiveRecord::Migration
def self.up
add_column :products, :price, :decimal, :precision => 8, :scale => 2, :default => 0
end

def self.down
remove_column :products, :price
end
end
taito 2008-09-10
  • 打赏
  • 举报
回复
products 表建立了吗,把你的迁移任务都贴出来看看。

gem --version <-- 看gem版本
MH2o 2008-09-10
  • 打赏
  • 举报
回复
我怎么更新,更新ruby?还是什么,菜鸟不是很清楚啊!

2,764

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ruby/Rails
社区管理员
  • Ruby/Rails社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧