rails中的RESTful API

时间:2013-03-21 17:11:10

标签: ruby-on-rails ruby ruby-on-rails-3 rest

我非常擅长使用rails并遵循RESTful API教程,所以请原谅我是否质量不高,因为我同样也是这些术语的首发。

我使用命令rails g controller kitten index

创建了一个控制器小猫

并在索引方法中发布了此代码 -

class KittenController < ApplicationController
  def index
    require 'open-uri'

    kittens = open('http://placekitten.com/')
    response_status = kittens.status
    response_body = kittens.read[559, 441]

    puts response_status
    puts response_body
  end
end

并在match ':controller(/:action(/:id))(.:format)'

中注释routes.rb

当我浏览这个 - http://localhost:3000/kitten

这就是我在浏览器中获得的内容 -

  

小猫#索引

     

在app / views / kitten / index.html.erb

中找到我

这在我的命令行中 - &gt;

billi

现在我的问题为什么它如此,虽然我期待它在我的浏览器中,但猫在命令提示符而不是浏览器中显示..我是新的休息资源所以请原谅,如果它是一个坏的:(

3 个答案:

答案 0 :(得分:3)

我不知道您正在关注哪些教程,但这样做对于Rails来说似乎是一件非常奇怪的事情,特别是学习RESTful API。

无论如何,控制器中的puts将文本输出到Ruby的标准输出,这将是服务器启动的终端。这就是为什么它出现在控制台而不是浏览器中:puts将它放在那里。

如果要将其显示在网页中,则需要为该控制器操作创建视图。也许继续沿着你的教程进入你的位置:如果没有,你可能想找到一个更好的。

答案 1 :(得分:3)

您应该阅读Model-View-Controller rails guide

  

控制器提供模型和视图之间的“粘合剂”。在Rails中,控制器负责处理来自Web浏览器的传入请求,询问模型以获取数据,并将该数据传递给视图以进行演示。

在控制器中定义变量并将其显示在视图中:

class KittenController < ApplicationController
  def index
    @variable = 'Hello World'
  end
end

在您的视图中(app / views / kitten / index.html.erb):

<%= @variable %>

答案 2 :(得分:0)

Rails控制器使用render call设置响应。 未执行调用时,它会实例化相应的视图并呈现该视图。在你的情况下是index.html.erb

试试这个:

render :text => kittens.read[559, 441], :status => kittens.status