我有一个动作create
和另一个动作register_and_create
。第一个操作创建订阅,第二个操作创建用户和订阅。但是我必须在register_and_create
行动中复制create
行动的代码。因此,使用Net::HTTP
从register_and_create
发送POST请求到create
动作是很好的做法吗?
不,这不是一个好的做法。
如果是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