Ruby On Rails 安装手记
弄了好几天,Ror环境终于搭好了,为了防止以后忘记,少走弯路,特记录下
=============================================
安装过程
1、安装 rubyinstaller-1.9.2
2、安装 执行 gem install rails
3、安装 dev kit 下载后 解压到ruby 的安装目录
4、安装Netbeans 6.9.1
5、打开Netbeans 配置 Ruby 的gem 重点 mysql2 0.2.6 让ror 支持 mysql
6、安装 ruby_debug_ide (还没有搞定,一直报错)
开发过程
1、创建项目 (Blog)
2、配置database.yam
3、执行rake 任务 db:create (会根据database.yam 在mysql 中创建数据库,不用去手动创建数据库)
4、启动服务,打开页面,看是否正常 尤其是看环境变量是否正正确显示
5、创建 controller home index
6、打开服务 http://127.0.0.1:3000/home/index 看是否正常
7、更改默认主页 (1、删除public\index.html 2、更改routes 中的 root :to => "home#index")
8、创建脚手架模型( generate scaffold Post name:string title:string content:text)
9、执行 rake 任务,将新的数据模型同步到数据库中 rake db:migrate
10、在首页上 增加 到脚手架的链接 (在 views\home\index.html.erb 中修改为
<h1>Hello, Rails!</h1> <%= link_to "My Blog", posts_path %>
注意里面的 posts_path,约定的写法
11、打开首页http://127.0.0.1:3000/ 看到有到blog的超级链接
12、连进去进行CURD测试。
13、在模型文件中增加验证信息
class
Post < ActiveRecord::Base
validates
:name
,
:presence
=>
true
validates
:title
,
:presence
=>
true
,
:length
=> {
:minimum
=>
5
}
end
presence 表示是否可为空,length 代表字段的长度
14、测试是否有验证信息显示。
15、创建一个普通model Comment (帖子评论)
$ rails generate model Comment commenter:string body:text post:references
注意 post:references
16、在Post模型中自动生成了一对多的关系
class
Comment < ActiveRecord::Base
belongs_to
:post
end
17、执行 rake ,任务 将新的数据模型同步到数据库中 rake db:migrate
18、修改 Post 模型 增加一对多映射
class Post < ActiveRecord::Base validates :name , :presence => true validates :title , :presence => true , :length => { :minimum => 5 } has_many :comments end |
19、在 route 中配置 Comments映射(有待研究)
resources :posts do resources :comments end |
20、创建controller
$ rails generate controller Comments |
<
p
class
=
"notice"
>
<%=
notice
%>
</
p
>
<
p
>
<
b
>Name:</
b
>
<%=
@post
.name
%>
</
p
>
<
p
>
<
b
>Title:</
b
>
<%=
@post
.title
%>
</
p
>
<
p
>
<
b
>Content:</
b
>
<%=
@post
.content
%>
</
p
>
<
h2
>Add a comment:</
h2
>
<%=
form_for([
@post
,
@post
.comments.build])
do
|f|
%>
<
div
class
=
"field"
>
<%=
f.label
:commenter
%>
<
br
/>
<%=
f.text_field
:commenter
%>
</
div
>
<
div
class
=
"field"
>
<%=
f.label
:body
%>
<
br
/>
<%=
f.text_area
:body
%>
</
div
>
<
div
class
=
"actions"
>
<%=
f.submit
%>
</
div
>
<%
end
%>
<%=
link_to
'Edit Post'
, edit_post_path(
@post
)
%>
|
<%=
link_to
'Back to Posts'
, posts_path
%>
|
22、修改 commentcontroller
class
CommentsController < ApplicationController
def
create
@post
= Post.find(params[
:post_id
])
@comment
=
@post
.comments.create(params[
:comment
])
redirect_to post_path(
@post
)
end
end
23、先写道这里了