2023-07-07 10:16AM
访问项目首页
先在命令行中运行(记着在要访问项目的目录下eg: /workspace/library ) bunlde exec rails server
然后打开浏览器 , 访问 localhost:3000 , 能看到首页 .( 这个页面是存在于 gem文件中的 . 在 library 目录下找不到它 )现在只有结构 .没有内容,所以需要增加内容 , 例如: 输入一个网址 , 显示一个页
假设 , 用户需要访问的 URL: localhost:3000/books/list
那么, 我们只需要 :
1. 修改-路由 (router)
2. 创建对应的 (controller, action)
3. 创建对应的页面 (erb)
1. 修改路由 config/routes.rb(路由文件)
向该文件中 , 增加下面的代码 :
Rails.application.routes.draw do
# 可以生成/books
resources :books do
collection do
# 可以对应好(处理)/books/list这个链接
# 下面这个路由,让rails可以处理URL:/books/list这个链接,
# 不过处理这个链接有个前提,这个链接发起的请求方式是使用get请求发起的
get :list
end
end
end
(resources ... do ... end )
它会生成一段”路由” , 也就是说 , 会识别 /books/list 这个 URL,并且把它交给 books controller的list action 来处理
2. 创建 controller/action(controller要在app 目录下)
新建一个controller文件: app/controllers/books_controller.rb
向该文件增加下面的代码:
class BooksController < ApplicationController
# 创建对应的action,因为要求访问它的list,所以在这里给它加上list的action
def list
end
end
( 一个 controller 是由多个 action( 也就是普通方法组成的 )不用的 action, 处理不同的url .
这个 list action 里没有任何代码 . 它会直接跳转到对应的 erb 页面 ( app/views/books/list.html.erb)
class BooksController < ApplicationController
# 创建对应的action,因为要求访问它的list,所以在这里给它加上list的action
def list
# 1.渲染一段字符串
# render :text => 'hihihi'
# 2.渲染一个json
# render :json => {
# key: 'value'
# name: 'Tom'
# sex: 'male'
# }
# 3.啥也不写,就渲染对应的 app/views/books/list.html.erb
end
end
3. 创建对应的视图文件
新建一个视图文件: app/views/books/list.html.erb
( 所有 books controller 中的视图 , 都要放到 app/views/books目录下 )
(对应的controller是什么名字,views/后面就用什么名字, eg: Bookscontroller, 就是views/books
(action叫什么名字 , 视图就叫什么名字,list action, 对应.的视图 , 就是 : list.html.erb)
erb文件里面可以添加html的内容,例如下面代码:
<p>三体1 - 地球往事</p>
<p>三体1 - 黑暗森林</p>
<p>三体3 - 死神永生</p>
为了简单起见 , 它只显示 HTML 代码 .访问浏览器,看到页面结果
4. 在视图中 , 使用 ruby 代码 .
修改 app/views/books/list.html.erb的内容,例如下面代码:
<h3>注意:以下使用了RUBY代码来显示HTML</h3>
<!-- 先定义了一个数组<% books = [] %> -->
<% books = ['三体1 - 地球往事', '三体2 - 黑暗森林', '三体3 - 死神永生'] %>
<!-- 使用了一个循环 -->
<% books.each do |book| %>
<!-- 打印出来 -->
<p><%= book %></p>
<% end %>
<a href='/books/new'>新建图书页</a>
可以看到 , 语法与PHP, JSP一样
● <% %> 之间来执行 ruby代码
● <%= %>来显示返回值
登录
请登录后再发表评论。
评论列表:
目前还没有人发表评论