在视图上显示HTTparty的GET请求

时间:2018-01-13 00:07:04

标签: ruby-on-rails frontend httparty

我目前有一个名为example.rb的简单ruby文件。如何创建一个允许用户将信息提交到表单然后将GET请求中的信息返回给他们的视图?我理解如何从控制台使用这些请求,但不是从前端使用。

此主题的资源也将受到高度赞赏。

require 'rubygems'
require 'httparty'

class StackExchange
  include HTTParty
  base_uri 'api.stackexchange.com'

  def initialize(service, page)
    @options = {query: {site: service}}
  end

  def questions
    self.class.get('/2.2/questions', @options)
  end

  def users
    self.class.get('/2.2/users', @options)
  end
end

stack_exchange = StackExchange.new('stackoverflow',1)
puts stack_exchange.users

1 个答案:

答案 0 :(得分:1)

确保HTTParty gem位于应用程序的Gemfile

example.rb并将其放入/app/models/stack_exchange.rb - 是的,文件名确实重要[0](这不是纯粹主义者放置它的地方,但对初学者来说这很好,完全可以接受)。删除你用来测试它的底部的代码。

routes.rb中的

添加此路线:get '/test' => 'application#test'

application_controller.rb添加此方法:

def test
  stack_client = StackExchange.new('stackoverflow', 1)
  @users = stack_client.users
end
app/views/application/test.html.erb中的

表示以下内容:

<% @users.each do |user| %><%=user.inspect%><br/><br/><% end %>

注意:我会建议您向ApplicationController添加视图,但由于我对您的应用程序一无所知,因此我会默认使用它。

点击http://localhost:3000/test,你会看到预期的结果。

[0] Rails在幕后做了很多“魔术” - 它真的不是魔术而是元编程 - 它试图假设很多关于你的应用程序结构和命名约定的东西。如果您的班级名为Stackexchange(请注意小写e),stackexchange.rb会自动“映射”到班级Stackexchange。更多信息:http://guides.rubyonrails.org/autoloading_and_reloading_constants.html