初用ruby的几个注意事项

豆豆网   技术应用频道   2008年01月18日  【字号: 收藏本文

内容摘要:今天按照Agile Web Development with Rails 的depot例子,准备根据数据库表自动生成scaffold,那天在公司把这个例子做了一遍,觉得挺顺利,没想到今天换到家里的机子后,出现了不少问题.

  今天按照Agile Web Development with Rails 的depot例子,准备根据数据库表自动生成scaffold,

  那天在公司把这个例子做了一遍,觉得挺顺利,没想到今天换到家里的机子后,出现了不少问题.

  在这里记录一下出现的问题及解决办法.

  1.创建好数据库和products表后,执行

  cmd>ruby script/generate scaffold product

  结果报错

  exists app/controllers/

初用ruby的几个注意事项初用ruby的几个注意事项

  error BeforeupdatingscaffoldingfromnewDBschema,trycreatingata

  leforyourmodel(Product)   

  在google上搜了一下,大概有2种解决办法:

  (1) 在database.yml文件中,在密码项前面加个空格(原文地址http://www.javaeye.com/post/264530)

  (2) 数据表名称没有复数,默认情况下,如果表为products,则命令相应为....scaffold product

  这个规则可以在相应的配置文件中修改,具体可以google,这里不多讲了.

  这两种方法都试过了,但问题依旧.

  (3)无意中打开database.yml文件,发现有这样几句提示:

  #InstalltheMySQLdriver:

  # geminstallmysql

  #OnMacOSX:

  # geminstallmysql----include=/usr/local/lib

  #OnWindows:

  # geminstallmysql

  #  Choosethewin32build.

  #  InstallMySQLandputits/bindirectoryonyourpath.

  于是执行了gem install mysql,之后问题就解决了.奇怪的是我在办公室一样的环境,没有执行gem install mysql,也没有出现过该问题.唯一的区别,呵呵,大概就是家里网速慢,那天gem intall rails时

  中断了好几次,不过这个问题总算解决了..

  2. 连接数据库编码问题

  生成scaffold后,就可以CRUD了,但是发现执行完CRUD后,mysql数据库中记录为乱码,执行

  mysql>set names gbk后,还是显示乱码,depot数据库、products表均已设置为utf8格式,在 

  database.yml中加入encoding:utf8后,问题解决.

  development:

  adapter: mysql

  database: depot

  username: root

  password:

  host: localhost

  encoding: utf8

责编:豆豆技术应用

正在加载评论...