До сих пор не работал с 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.Это может показаться крайне неописуемым, но я сделал это ради конфиденциальности.Код, вероятно, беспорядок, но, пожалуйста, дайте мне знать, если мне нужно добавить больше деталей.