【问题标题】:Displaying GET request from HTTparty on view在视图中显示来自 HTTparty 的 GET 请求
【发布时间】:2018-01-13 00:07:03
【问题描述】:

我目前有一个名为 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

【问题讨论】:

    标签: ruby-on-rails frontend httparty


    【解决方案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

    【讨论】:

    • 正是我想要的。谢谢!
    • 这个一般概念被称为什么?只是为了让我大致了解如何通过 Google 获取更多信息。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 2021-07-22
    • 1970-01-01
    • 2019-11-27
    相关资源
    最近更新 更多