2012-11-02 59 views
3

如何从数据库加载路由? 我有表与列:网址。还有就是URL的一部分,在此列,例如:从Rails数据库中获取路由

  • progs的/我们
  • progs的/我们/资讯

如何为此设置路线?结果例子:

http://mysite.com/progs/us for the page http://mysite/posts/2 
+0

我真的不清楚你想要完成什么。路由在'config/routes.rb'文件中定义。你是否试图将部分url与数据库中的列匹配? – claptimes

+0

是的,你是对的。 – dublicator

+1

我还不确定。你是否想要做一些像FriendlyID一样的东西?看看这个[Railscast](http://railscasts.com/episodes/314-pretty-urls-with-friendlyid) – claptimes

回答

3

您可以通过这条路线拦截任何网址:

# routes.rb 
    get '*url' => 'posts#show', format: false 

注:这条路线应声明最后在你的配置

和控制器看起来像以下:

# posts_controller.rb 
    class PostsController < ApplicationController 
     def show 
     @post = Post.find_by_url!(params[:url]) 
     # by default "show" view is rendered with "post" variable 
     end 
    end