我非常擅长使用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;
现在我的问题为什么它如此,虽然我期待它在我的浏览器中,但猫在命令提示符而不是浏览器中显示..我是新的休息资源所以请原谅,如果它是一个坏的:(
答案 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