Ruby on rails 重定向Rails中的所有URL(已知和未知)
在Rails中,是否有一个简洁的解决方案可以在一个地方实现这一目标?(最好是Ruby on rails 重定向Rails中的所有URL(已知和未知),ruby-on-rails,Ruby On Rails,在Rails中,是否有一个简洁的解决方案可以在一个地方实现这一目标?(最好是routes.rb)。现在,为了重定向,我制作了一个类似以下内容的前置过滤器: 。。。 除非[temp_url]。是否包括?request.url 重定向到临时路径 结束 这种方法适用于已知路线。未知路由将获得404错误。对于未知,可以在路由中使用此选项。rb: 匹配“/*其他”=>重定向(“/temp/index”) 显然,我们无法访问routes.rb中的request对象。是否有更好的解决方案来覆盖路由中的已知
routes.rb
)。现在,为了重定向,我制作了一个类似以下内容的前置过滤器:
。。。
除非[temp_url]。是否包括?request.url
重定向到临时路径
结束
这种方法适用于已知路线。未知路由将获得404错误。对于未知,可以在路由中使用此选项。rb
:
匹配“/*其他”=>重定向(“/temp/index”)
显然,我们无法访问
routes.rb
中的request
对象。是否有更好的解决方案来覆盖路由中的已知和未知重定向。rb
?在筛选之前仔细查看:
例如,以下代码总是在show、edit、update和destroy端点中调用find_post方法。同样的逻辑也可以用于您的案例
class PostsController < ApplicationController
before_filter :find_post, :only => [:show, :edit, :update, :destroy]
def update
@post.update_attributes(params[:post])
end
def destroy
@post.destroy
end
protected
def find_post
@post = current_user.posts.find(params[:id])
end
end
class PostsController[:show,:edit,:update,:destroy]
def更新
@更新_属性(参数[:post])
结束
def销毁
@事后销毁
结束
受保护的
def find_post
@post=当前用户.posts.find(参数[:id])
结束
结束
未知路由重定向到根目录
routes.rb
match '*path' => redirect('/')
使用上述功能,您可以将所有未知路由重定向到根。我想说,拥有这两个单独的功能就足够了。需要“一网打尽”的情况非常罕见,因此为他们提供一行额外的服务应该是可行的。