2014-01-28 145 views
0

我正在尝试设置我的应用程序的基本路由和URL。我使用FriendlyId宝石来获得更好看的网址。Ruby on Rails路由,双嵌套S 012

在我的模型设计中,帐户有用户,帐户有农场。当用户登录时,我想将它们重定向到myapp.com/account-name。此页面应该是该帐户的农场的索引页面,以及其他一些选项。当他们点击一个农场时,我想让页面转到myapp.com/account-name/farm-name

我该怎么做?这是完全反RESTful不包括/帐户或/农场的网址?如果是这样,那么我能做些什么来使网址为myapp.com/account-name/farms/farm-name

现在我有它正确显示myapp.com/account-name具有

get "/:id", to: "accounts#show", as: 'account' 

,但我不认为我可以扩展到包括农场。我想这可能与一些来解决类似

resource :account do 
    resource :farms 
end 

但显示myapp.com/account.account-name当我去到该帐户,当我这样做redirect_to account_path(current_user.account)它使用POST路线,而不是得到一个。

我在Rails很体面,所以很抱歉误会。谢谢你的帮助!

回答

0

我已经想通了,我可以做到这一点通过增加航线多了一个行文件

get "/:account_slug/:id", to: "farms#show", as: 'account_farm' 

然后我可以链接到一个农场的观点与

<%= link_to farm.name, account_farm_path(account_slug: @account.slug, id: farm.slug) 

我如果这是好的做法或任何其他建议,我仍然对任何答案感兴趣。

1

如果Farm belongs_to Account(而不是HABTM),shallow nesting可能是一个很好的路线结构。