当我想对某个动作发出POST请求时,我应该使用Net :: HTTP吗?

时间:2013-03-24 10:34:07

标签: ruby ruby-on-rails-3 ruby-1.9.2 net-http

我有一个操作create和另一个操作register_and_create。第一个创建订阅,秒创建用户和订阅。但我必须在create操作中复制register_and_create操作的代码。因此,使用Net::HTTP将POST请求从register_and_create发送到create操作是一种好习惯吗?

1 个答案:

答案 0 :(得分:1)

不,这不是一个好习惯。

如果是GET方法,则应执行操作代码并将重定向返回到第二个操作。

对于POST方法,您应该执行register_and_create操作中的所有代码。发送NET:HTTP可能会导致很多问题 - 您必须确保已分配所有HTTP标头,不必要的请求到服务器等等。

如果找到代码的公共部分,最好将代码移到lib模块并在控制器中使用include

例如:

module RegistrationModule
  def create_user
    # your code goes here
  end
end

class RegistrationController < ApplicationController
  include RegistrationModule

  def register_and_create
    # subscribe
    create_user
  end

  def create
    create_user
  end
end