rails view层的具体细节(一)

转自:http://ihower.tw/rails3/actionview.html

Template样板

什么是Template样板呢?我们知道伺服器最终提供给浏览器的格式是HTML文件,而Template样板就是动态产生HTML的方式。

相对的说,我们用静态HTML来称呼不经过程式产生的HTM文件

Rails预设用来产生Template的方式是Embedded Ruby(ERb),如果你曾经使用过PHPJSPASP,那么你会非常熟悉这种内嵌程式码的风格,这是一种最为直觉且容易学习的方法。例如以下是一小段嵌入目前时间的ERb,中间<%= %>的部份便是Ruby程式:

<h1><%= Time.now.to_s %></h1>

RailsTemplate档案位置和名称也是有玄机的,例如app/views/welcome/index.html.erb来说,welcome目录是它的Controller名称,档案第一段index是它的Action名称,附档名则是用来指定要用什么方式来产生什么格式的文件:index.html.erb表示用ERb产生HTML格式的文件。会有这样惯例的原因,你可能已经猜到,那就是使用ERb不代表一定就是用来产生HTML。用什么Template引擎(在Rails中又叫作Template Handler )产生文件,和文件的Format格式是两回事情。所以ERb其实可以用来产生任何文字档格式,例如CSVXMLJavaScript等等。

虽然可以,但ERb并不是产生XML的最好方式,通常在我们会用Builder来产生XML,例如一个叫做show.xml.builder的档案:

people do |p|
  p.person "test"
end

就会产生以下的XML

<people>
  <person>test<person>
</people>

以下是常见的样板引擎与格式组合:

格式 引擎
html、xhtml erb
js erb
xml、rss、atom builder

扩充Template Handler

Rails预设只有内建ERbBuilder这两套样板引擎,但要扩充非常容易。例如在Rails社群中,也很流行用HAML这套样板引擎来取代ERbHAML是一套利用缩排技术简化HTML撰写的格式,例如:

#content
  .box
    test

就会产生以下的HTML

<div id="content">
  <div class="box">
    test
  </div>
</div>

要安装使用,只需要在Gemfile档案中加上gem "haml-rails"然后bundle install即可。不过相较于ERb,使用HAML虽然可以更为有效率地撰写HTML样板,但是会需要考量团队中的网页设计师是否能够配合使用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当使用Rails框架编写接口时,可以按照以下步骤进行: 1. 创建一个新的Rails应用程序: 打开终端,导航到项目目录并运行以下命令: ``` rails new api_example cd api_example ``` 2. 创建一个控制器: 运行以下命令创建一个控制器: ``` rails generate controller Api ``` 3. 在控制器中定义接口方法: 打开 `app/controllers/api_controller.rb` 文件,添加如下方法: ```ruby class ApiController < ApplicationController def hello render json: { message: 'Hello, World!' } end def greet name = params[:name] render json: { message: "Hello, #{name}!" } end end ``` 4. 配置路由: 打开 `config/routes.rb` 文件,添加以下路由配置: ```ruby Rails.application.routes.draw do get '/api/hello', to: 'api#hello' post '/api/greet', to: 'api#greet' end ``` 5. 运行应用程序: 在终端中运行以下命令启动Rails服务器: ``` rails server ``` 现在,你的Rails应用程序就有了两个接口:`/api/hello` 和 `/api/greet`。 - GET请求的 `/api/hello` 接口返回一个JSON响应,包含一条简单的问候消息。 - POST请求的 `/api/greet` 接口从请求参数中获取名字,并返回一个包含问候消息的JSON响应。 你可以使用REST客户端(如Postman)或浏览器来访问这些接口,例如: - GET请求:`http://localhost:3000/api/hello` - POST请求:`http://localhost:3000/api/greet`,并在请求体中添加名为`name`的参数。 这样,你就可以使用Rails框架创建一个简单的接口,处理不同的HTTP请求并返回相应的JSON响应。当然,在实际开发中,可能会涉及更复杂的数据处理和业务逻辑,但这个例子可以帮助你快速入门。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值