没有型号名称的路由

使用这个问题和railscast 63我已将我的文章发送到文章/ article_permalink。

我希望它们可以在URL中没有模型名称的情况下访问,因此my-domain.com/article_permalink直接路由到文章。 我只希望在show动作中发生这种情况。 这可能吗?

我觉得你需要像……

(在routes.rb中)

match '/:id' => 'articles#show', :via => 'get' 

(需要是最后一个,或者在路径的末尾,因为它可以匹配其他路线的请求)

要更改article_path(…)帮助程序,“as”可能有所帮助: http : //guides.rubyonrails.org/routing.html#overriding-the-named-helpers

或者,您可以为该特定路径添加帮助程序。

如果我理解你的问题,你希望绑定到路线“articles / article_permalink”的模型是动态的,基于哪个文章从列表中选择?

您是否愿意将模型ID作为查询字符串附加到URL的末尾? 更复杂的方法是将链接POST,将模型ID作为隐藏输入字段。 您的控制器可以确定它是否通过get / post访问,并相应地处理它,但这感觉不对。

无论如何,当基于对“articles / article_permalink”的请求触发控制器动作时,它必须知道要获取哪个模型。 由于HTTP是无状态的,所以必须传入一些东西。你可以想象并编写JavaScript来触发一个AJAX调用,设置一个会话var,然后激活GET,但这很麻烦。

我希望我理解这个问题……