这章内容大多抄书,没啥自己的东西,有书的同学就别看这篇了
2.1
创建new项目,使用rails xxxxxx命令即可。书中的例子是:rails ticket,然后生成了一大堆文件。
那么这些内容是些什么呢?关于所创建内容的说明:
app:大部分开发代码,不同功能的代码放在不同文件夹下面。
app/controllers:控制类的代码放于此,用于对发送来的请求作出响应。
大多数的此类代码都继承于 ActionController::Base类
app/models:负责业务逻辑和 业务逻辑到数据库的映射。
app/views:存放模版文件。使用rails的生成器(generator)来生成,及用到ruby script/generator xxxxxxxxx命令行,自动创建响应的子目录,视图文件都以.rhtml .rjs .rxml为文件扩展名
app/helpers:存放可以再view中调用的代码。开发中可以将一些view代码放于此,以减少视图模版的ruby代码量。
app/apis:新创建的项目没有该目录,只有用soap或者xml-rpc接口时才会有action web service generator生成。
config:所有配置文件。经常用到的有database.yml,routes.rb,environment.rb
db:存放与数据库相关的文件。
schema.rb文件在数据库迁移时有rails自动生成,并指定了当前数据库的所有者id。默认以ruby格式显示,但是也可以用sql格式显示。
migrate的子目录,用来存放数据库迁移文件。
components:按书上的说法是,某些情况下开发商为了某些特定功能而创建的一些自包含的组件(self-contained components),以提高程序的可扩展性。但是通常有问题,现今多被plug-in替代。(书中原话)
另外:不过我的根本就没生成这个所谓的components,仔细看书发现书中的rails ticket,其生成结果中也没有create所谓的components。
doc:可在该目录下运行rake doc生成rdoc文档
lib:应用中自定义库函数
log:存log
public:应用访问的根目录。其下面有用于存放图片,样式表,jsp等文件的子目录
script:rails脚本。如:generator,model,migration等generator脚本
test:test
vendor:第三方库函数,如插件等存于此
rails有用的命令行:
rails --freeze将当前开发时的rails版本复制到vendor/rails目录下面,可以避免以后rails升级等不同造成的影响
rails --database=name 默认的name参数是mysql并创建相应的database.yml。
2.2配置数据库
使用phpMyadmin配mysql,然后修改database.yml,按书上该即可。我的是:
development:
adapter: mysql
database: ticket_development
username: root
password:
host: localhost
用rake db:migrate检查是否配好了数据库。没错误显示就是配好了。
2.3测试应用程序
install rails-》rails application-》start witch mongrel
登陆http://localhost:3000/,到了默认的rails的欢迎界面。
为了以后显示自己的欢迎界面,删除public中的index.rhtml文件
2.4样式表
书中用的是yahoo user interface(yui)代码库中的3个css
reset.css:将margin(边距)、padding(边框距)、border(边框)等设为0,能将浏览器默认的显示方式去掉。保证应用程序在不的浏览器中显示效果一致。
font.css:统一的文字显示
grid.css:提供了200多个不见方式,且允许自定义布局
使用
<link rel="stylesheet" type="text/css" href="http://yui.yahooapis.com/2.7.0/build/reset-fonts-grids/reset-fonts-grids.css">
或者把它们下下来
从http://developer.yahoo.com/yui/下载,最新版本是2.7.0,手动将reset-fonts-grids.css复制到public/stylesheets下,在页面中添加链接
<%= stylesheet_link_tag 'reset-fonts-grids-min' %>
2.5绑定rails
不幸的是,或者幸运的是,我的rails就是2.0.2,绑定就算了吧。