Передача данных через URL другому приложению в Ruby on Rails - PullRequest
0 голосов
/ 25 марта 2019

Я новичок в Ruby on Rails, я хотел бы передать некоторые данные в мое другое приложение. В настоящее время я использую гем httpparty, но мне трудно при отправке больших данных, таких как текст, поэтому мне было интересно, есть ли какой-нибудь рекомендуемый гем, который преобразует простой HTML-текст в формат, который я могу отправить или простой способ сделать

Что я пытаюсь сделать:

например:

def abc_action 
    contents = params[:content]
    response = HTTParty.post("http://abc.go.com?contents=#{contents}")

end

говорят, что параметры содержимого включают много пунктов, таких как

"Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit, Sed Do EiusMod Tempor Inididunt U Labore et Dolore Magna Aliqua. Ut Enim Ad Minim Veniam, Quis Nostrud упражнение Ullamco Labouris Nisi UT Aliquip Ex Ea Коммунальный закон в Дуо Ауто в США. предлежит в волюптом, велит, esse cillum, долоре, ЕС, fugiat, nulla pariatur. Excepteur, sint, occaecat, cupidatat, не в порядке, иск в виновном, вызывающий беспокойство, мольит, аним, то есть рабочая сила

Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit, Sed Do EiusMod Tempor Incididunt U Labore et Dolore Magna Aliqua. Ut enim ad minim veniam, quis nostrud упражнение ullamco labouris nisi ut aliquip ex ea кассовый следствие. Duis aute irure dolor в репереендерит в завитке Velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat непроизведенный, иск в виновном виновнике моллис аним ид лейборист "

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 26 марта 2019

Из того, что я могу сказать, вы получаете "содержимое" из запроса POST на вашем контроллере, который, как я предполагаю, пришел из формы, которую вы создали в одном из ваших представлений. Если это так, вы можете вообще пропустить контроллер и просто указать действие вашей формы на http://abc.go.com.. Вы можете прочитать о том, как это сделать здесь .

<%= form_tag("http://abc.go.com", method: "post") do %>
  <%= label_tag(:contents, "Contents: ") %>
  <%= text_area_tag(:contents) %>
  <%= submit_tag("Submit") %>
<% end %>

Таким образом, браузер пользователя отправляет запрос, и вам не нужно иметь HTTP-клиента на вашем контроллере. Важно знать, что вы должны позаботиться о маркере подлинности вручную и настроить abc для перенаправления обратно в исходное приложение или куда вам нужно с помощью http 302 .

Если abc является приложением rails, то контроллер может выглядеть так:

class SomeController < ApplicationController
protect_from_forgery except: :create

def create
  #use strong params not params[:contents]
  @something = SomeModel.new(contents: params[:contents])

  if @something.save  
    format.html {redirect_to "http://original_url/place_to_go_after_content_submit")
  end
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...