以下命令都是在windows下面执行的,如果是在linux下面,请把其中路径的"\"改成"/"
1、Rails 命令:
在path路径下面创建一个新的工程
rails path
启动server(适用于1.8版本,对于更高版本请使用:rails server,下面类似)
ruby script\server
生成produts控制器(rails generate ...)
ruby script\generate controller products
生成product类,并生成相应的数据库文件
ruby script\generate model product title:string desp:text inventory:integer price:decimal
生成数据迁移,名称为add_seller_to_product,可以在生成的迁移文件中重写up和down函数,从而生成迁移方式
ruby script\generate migration add_seller_to_product
def self.up
add_column :products, :seller, string
add_column :products, :weight, :decimal,
:precision=>8, :scale=>2, :default:0
end
def self.down
remove_column :products, :seller
remove_column :products, :weight
end
注意:数据迁移定义的up函数是往前执行的时候调用,而down函数是在回滚时才调用的,故两者的行为正好相反。
执行数据迁移
rake db:migrate
生成文档
rake app:doc
查看路由表
rake routes
生成products的脚手架,即把products当做资源来处理,为其生成new edit delete index等视图,同时生成new edit destroy update index 等action,完成对其进行的CRUD操作
ruby script\generate scaffold products title:string desp:text price:decimal
在console下面可以进行多项操作,例如查询对地址的路由解析和生成路由地址,下文中有>提示符的,都表示在在console下的操作。
ruby script\console
给后面的这个类起个别名
>rs=ActionController::Routing::Routes
>puts rs.routes
根据当前的路由配置解析当前地址采用的controller、action及参数。
>rs.recognize_path "/products/edit/3"
根据提供的控制器等参数生成url
>rs.generate :controller=>"products", "action"=>"edit", :id=>"34"
>exit
2.sqlite3 数据库操作
直接从控制台调用sql查询语句
sqlite3 db\sqlite3-development "select * from products"
查看products表的信息
sqlite3 db\sqlite3-development "PRAGMA table_info(products)"
3.一个问题
在windows下面,当我启动一个rails server的时候,如果在执行一些操作的时候遇到异常,则运行服务器的命令行就显示无响应,然后就消失了。后来发现了一个解决办法:启动服务器的时候,将输出写入文件而不是打印在屏幕上可以解决这个问题。即:ruby script\server 1 >1.txt & 2 > 2.txt。这样,当遇到异常的时候,不仅启动服务器的命令行不会消失,而且通过查看1.txt 文件,可以知道异常产生的原因,同时也可以在程序中使用puts将信息打印出来,方便调试。