我写了一个动作再次调用另一个私有方法,
如果满足特定条件,我想重定向到其他页面,否则继续执行。
但我无法做到,
当我试图使用redirect_to root_path
时,它表示双重渲染,
它实际上是试图执行实际调用的动作语句,而不是从私有方法渲染。
def actual_method_called
data1 = params[:data1]
method_2(data1)
data2 = params[:data1]
method_2(data2)
render json: {status: 'ok' }
end
private
def method_2(data)
if data.valid?
puts 'continue the execution'
else
redirect_to root_path and return
end
end
答案 0 :(得分:1)
您可以从被调用的方法返回一个值...
def method_2(data)
if data.valid?
puts 'continue the execution'
return
else
redirect_to root_path
return :redirected
end
end
温你称之为存储返回值
def actual_method_called
data1 = params[:data1]
return_status ||= method_2(data1)
data2 = params[:data1]
return_status ||= method_2(data2)
render json: {status: 'ok' } unless return_status == :redirected
end