在我的rails应用程序中,我正在尝试创建一个控制器方法,该方法取决于if语句呈现一个页面或重定向到另一个路径。我认为解决方案可能是创建一个单独的方法,我可以调用我的if语句,它具有单独的渲染。即使我应该落入if语句的第一部分,也不会显示alert.html.erb页面视图。我的问题是在此操作中多次调用渲染和重定向(每次一次)。如何根据if语句将我的方法重定向到不同的地方?
def alert(url)
@urls = Url.all
render :alert
end
def update
id = params[:id]
updated_info = params.require(:url).permit(:link, :random_string, :clicks)
@url = Url.find(id)
if not Url.where(random_string: @url.random_string).empty?
alert(@url)
end
@url.update_attributes(updated_info)
redirect_to edit_url_path(@url.id)
end
答案 0 :(得分:0)
添加
return
在渲染或redirect_to
之后立即执行即
if [condition A]
render :edit
return
elsif [condition B]
redirect_to my_url
return
end
redirect_to root_url
答案 1 :(得分:0)
您可以将'return'关键字用作:
return redirect_to edit_url_path(@url.id)
和
return normal_path(@url)