Передача данных из контроллера в частичную / просмотр в RoR - PullRequest
0 голосов
/ 25 сентября 2019

До сих пор не работал с Ruby + RoR в профессиональной среде.В настоящее время я передаю .env переменные на смонтированный компонент реагирования в качестве подпорки, а затем выполняю GET-запрос через axios на клиенте следующим образом.

<%- cache(element_view) do -%>
  <%= element_view_for(element_view) do |el| -%>
    <div class="flex sm:flex-col">
      <div class="sm:w-full ns:w-full text-center">
        <%= react_component('element/SomeElement', {
          id: ENV["ID"], key: ENV["KEY"]
        }) %>
      </div>
    </div>
  <%- end %>
<%- end %>

Но команда хочет, чтобы я переместил запрос вбэкэнд-сервис.Это то, что у меня сейчас есть.

class SomeService
  API_URL = "someEndPoint"
  def initialize
    @response = get_reviews
  end

  def get_reviews
    conn = Faraday.new(url: "#{APIURL}/#{ENV["ID"]}/reviews?language=en&stars=5") do |faraday|
      faraday.headers["apikey"] = ENV["KEY"]
      faraday.adapter Faraday.default_adapter
    end
    response = conn.get
    response.body
  end
end

Я пытаюсь использовать этот сервис в контроллере, который выглядит следующим образом

class SomeController < ApplicationController
  def show
    @reviews = do_something
  end

  def do_something
    SomeService.new.initialize
  end
end

И я хочу получить доступ к данным на частичномкак <%= @reviews %>, но я не могу вернуть какие-либо данные.Я знаю, что запрос работает, потому что я проверил его как один файл ruby.Это может показаться крайне неописуемым, но я сделал это ради конфиденциальности.Код, вероятно, беспорядок, но, пожалуйста, дайте мне знать, если мне нужно добавить больше деталей.

...