学习ROR(2)

首先我们要创建一个新的rails工程,我们取名叫depot,

workpath> rails new depot

执行完这个命令,会在workpath下创建一个新的目录depot,进入里面我们看到rails帮我们搭建好一个完整的网站结构。

根据先前网站设定的功能,我们需要建立个买卖物品的页面(product view),同时需要data model来和数据库联系以及控制器(controler)。Rails为我们提供了一个方便的方法来一次性生成这些

内容,scaffold。

workpath> rails g scaffold Product title:string description:string image_url:string price:decimal

命令行中的g是generate的简写。同时注意Product是单数,因为在rails中一个模型(model)会自动的和数据库中的表名映射,而数据库的表名是模型的复数形式,所以这里对应的表名是Produts。(另外需要指明的是不是每次都会用scaffold,有时只需要创建model,可以rails g model ModelName, rails g命令有很多用法)

命令执行完以后,我们会得到一堆新创建的文件。我们第一个感兴趣的是migration文件xxxxxx_create_products.rb, 其中xxxxxx是一个时间标记表明创建的时间。migration文件描述的是我们要对database要做的事情,可以是改变schema,也可以改变具体的数据,同时也可以回退(roll back)先前提交的内容。xxxxx的时间标记就可以提供回退之类操作的依据。

在我们把更新提交到数据库前,先把数据库的配置设置下。打开整个depot工程

workpath> sublime .

(我用sublime,也可以用textmate之类的)

rails 默认的使用的是sqlite作为数据库,我们现在用mysql。打开config/database.yml, 可以做如下修改

development:
  adapter: mysql2
  database: depot
  pool: 5
  timeout: 5000
  username: root
  encoding: utf8
  host: localhost

(mysql2是ruby新的mysql gem)

同时别忘了在Gemfile中把mysql2加上,然后在命令行中输入bundle,把我们刚才添加的mysql2 gem更新下来。(bundler 在安装ROR时已经自动安装,也可以手动安装$gem install bundler.

bundler是用来管理项目的引用的,在Gemfile里的gem)

这样我们就可以用mysql了,我们先看看我们的数据库depot在不在

1 workpath> mysql -uroot
2 mysql> show databases;

可以发现数据库中并没有我们的数据库,先创建我们的depot数据库

workpath> rake db:create

(rake是rails的一个工具集,提供很多有用的操作,用‘bundle exec rake -T'可以查看所有的方法)

在有了数据库后我们就可以真正的开始我们的工作了。

 

 

posted @ 2012-08-30 16:15  谷满仓  阅读(176)  评论(0)    收藏  举报