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