Рендеринг jbuilder в Rails в действии

Я хочу отправить в веб-сокеты то, что обычно возвращается из представления jbuilder при вызове маршрута, но я не могу дважды вызывать рендеринг в действии:

def
  ...

  @resource_receivers = "#{@resource.model_name.singular.capitalize}Receiver".constantize.where("#{@resource.model_name.singular}_id": @resource)
  @resource_receivers.each do |resource_receiver|
    resource_receiver.create_activity :sent, owner: @current_user, recipient: resource_receiver.receiver
  end

  to_return = render 'api/received/show'

  Pusher.trigger('resources', 'resource.received', JSON.parse(to_return.first))

  return render :task
end

Как бы я решил это? Или, вообще, я хотел бы вернуть то, что обычно возвращается из jbuilder в любом другом месте моего приложения, например, если я хочу реорганизовать это, чтобы иметь метод, который отправляет пользователю


person Mohamed El Mahallawy    schedule 23.01.2016    source источник


Ответы (1)


Если вы хотите визуализировать представление и присвоить его переменной вместо того, чтобы устанавливать его в качестве тела ответа, вы можете использовать render_to_string.

person Will Sewell    schedule 23.01.2016