学习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'可以查看所有的方法)
在有了数据库后我们就可以真正的开始我们的工作了。

浙公网安备 33010602011771号