2013-09-11 4 views
0

Это просто пример, чтобы узнать, как отправить запрос POST из действия. Так, скажем, у меня есть действие:Отправьте запрос POST на другое действие

def download 
    @t = params[:url] 
end 

Я хочу отправить запрос POST к другому действию, давайте назовем его doStuffWithPost:

def doStuffWithPost 
    # Save a row with that POST info, url_column = POST['url'] 
end 

def download 
    @t = params[:url] 
    # Send POST with POST['url'] = @t 
end 

В PHP я хотел бы использовать CURL, вероятно, что требует довольно много кода. Есть ли простой способ сделать это в Rails? Если нет, что я должен использовать для передачи параметров из одного действия и вызова другого? Благодарю.

+1

Прежде всего то, что вы пытаетесь, - это плохая практика. Я бы не рекомендовал вам делать то, что вы пытаетесь сделать. Связь с контроллером в приложении Rails (или любое веб-приложение, использующее один и тот же шаблон для модели-адаптера), - это то, что вам следует активно избегать. Когда вы соблазняетесь сделать это, считайте это признаком того, что вы боретесь с шаблонами и каркасом, на которых построено ваше приложение, и что вы полагаетесь на логику, реализовано на неправильном уровне вашего приложения. – Raghu

+0

Это не какие действия контроллера. – zeantsoi

+0

@zeantsoi Что я должен использовать вместо этого? – lily

ответ

0

Нет необходимости размещать на другое действие здесь, просто следовать шаблону рельсы (если вы когда-либо scaffolded новый ресурс, вы должны были видеть это раньше):

def download 
    url = Url.new(params[:url]) 
    if url.save 
    redirect_to happy_route 
    else 
    redirect_to unhappy_route 
    end 
end 
0

Вы можете использовать httpparty gem сделать это. Здесь почтовый метод example Но, как и другие ребята, не используйте это, если у вас нет веской причины. Вы можете использовать это, если вам нужно поговорить с api, например ...

Смежные вопросы