Rails 5:将JSON属性保存到数据库

时间:2019-02-11 10:24:06

标签: ruby-on-rails json

我目前正在关注HTTParty的API教程。一切正常,我很高兴能学到新知识。像往常一样,本教程让我有些疑问。

现在,我可以使用GET请求调用metup API,并从metup中获取所有事件。 JSON被解析为我的视图,但是现在我想分别显示每个事件,例如:

<%= @events.each do |event| %>
 <%= event.name %>
 <%= event.date %>
 <%= event.organizator %>
<% end %>

这是我的模特:

class Meetup
  include HTTParty
  base_uri 'api.meetup.com'

  attr_reader :options

  def initialize
    api_key = ''
    @options = {
      query: {
        key: api_key,
        sign: "true",
        desc: "true",
        page: 3
      }
    }
  end

  def get_data
    self.class.get('/operation-code-hampton-roads/events', @options)
  end

  def events
    if get_data.code.to_i == 200
      get_data.parsed_response
    else
      raise "Error fetching data from Meetup API"
    end
  end
end

我的控制器:

class DashboardsController < ApplicationController
  before_action :authenticate_user!

def index
  @services = Service.all

respond_to do |format|
  @events = Meetup.new.events
  format.html
  format.json { render json: @events }
  end
end

end

我的观点:

<%= @events.each do |event| %>
 <!-- event.name ? -->
<% end %>

1 个答案:

答案 0 :(得分:0)

由于这是我第一次使用JSON,因此我认为在视图中显示@events会更加困难。

但这很简单,我什至不需要创建新的迁移!

我只是将此添加到视图中,一切正常!

<% @events.each do |event| %>
<%= event["name"] %>
<%= event["status"] %>
<%= event["local_date"] %>
<%= event["local_time"] %>
<%= event["yes_rsvp_count"] %>
<%= event["venue"]["city"] %>
<%= event["venue"]["address_1"] %>
<%= raw (event["description"]).truncate(100) %>
<% end %>