Ошибка заключается в том, что когда контроллер выполняет другое действие, переменные экземпляра, подобные этим, не обязательно переносятся / получают набор, а любая неопределенная переменная экземпляра по умолчанию принимает значение nil
. Предполагая, что это представление списка на ResultsController#show
, один вариант будет для ResultsController
выглядеть примерно так:
before_action :a_list, only: :show
def show
# Any other code for show
end
def a_list
list = Gibbon::Request.lists("9225cefb61").members.retrieve(params: {"fields": "members.email_address"})
list_hash = list.body
@result_array = list_hash['members'].map { |ea| ea['email_address'] }
end
При этом используются встроенные Rails Filters для обработки цепочки сообщений при отображении вашего представления. Поскольку #a_list
запускается до #show
, значение @result_array
сводит его к виду.