Ruby on rails 重定向Rails中的所有URL(已知和未知)

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对象。是否有更好的解决方案来覆盖路由中的已知

在Rails中,是否有一个简洁的解决方案可以在一个地方实现这一目标?(最好是
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('/')

使用上述功能,您可以将所有未知路由重定向到根。

我想说,拥有这两个单独的功能就足够了。需要“一网打尽”的情况非常罕见,因此为他们提供一行额外的服务应该是可行的。