2011-07-14 96 views
2

我是新来的Rails和已运行到与一个小应用程序,我写的路线路障 -Rails 3路由 - 如何使用根路由中的参数?

我想用根路线将参数映射到特定的控制器 -

例如,假设我有一个控制器,VariablePageController,它将根据URL中的参数呈现不同的内容。

所以当有人访问我的网站时,mysite.com会进入主页,但mysite.com/[pagename]会通过我的VariablePageController,但用户将留在mysite.com/[pagename]和NOT mysite.com/VariablePage/[pagename] -

变量[页面名]是动态生成的,所以我不能列出在routes.rb中所有的可能性...

将如何实现与路由这种效果?

回答

3

好吧,我找到了答案,有兴趣的人士......

我基本上是想,但我想没有很好地描述,是“塞式”或基于URL根目录的“友好”网址,而不是/控制器/路由。

要做到这一点 - 做这样的事情在routes.rb中: 标准首页路线

根:到=> “页面#指数”

参数为基础的家庭路线

比赛':url'=>“page#show”

1

你可以这样做

match '/pagename' => "variablepage#pagename", :as => "pagename" 

简单命名的路由,然后你的链接会照顾,在你的variablepage控制器如下

​​

<%= link_to "pagename", pagename_path %> 

你有

def pagename 
..... 
end 

我希望这可以帮助你

+0

这不完全是我的意思 - pagename可以是任何东西,它是动态的,它可以是X,123,狗,猫等 - 用户生成一个页面与他们的选择名称。我希望根路由接受mysite.com/[variablepage],它是X,123,dog,cat等,并根据此从数据库中提取内容。我只是没有真正在如何匹配这个控制器,所以我可以从params []中拉出值。对于我来说,定义这样的路线是不可能的,因为它们是动态页面 - 这有助于澄清吗? – Evan