【问题标题】:Should I use Net::HTTP when I want to make POST request to an action当我想对一个动作发出 POST 请求时,我应该使用 Net::HTTP
【发布时间】:2013-03-13 21:45:43
【问题描述】:
我有一个动作 create 和另一个动作 register_and_create。第一个创建订阅,第二个创建用户和订阅。但是我必须将create 操作的代码复制到register_and_create 操作中。那么使用Net::HTTP 将POST 请求从register_and_create 发送到create 操作是一种好习惯吗?
【问题讨论】:
标签:
ruby
ruby-on-rails-3
ruby-1.9.2
net-http
【解决方案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