Rails 3路由和格式特异性

skk*_*k5m 3 ruby routes ruby-on-rails

我正在尝试将路径文件中的路径限制为特定格式.

我希望这个工作: app.com/party_favors/list.json

不是这个

app.com/party_favors/list或者这个 app.com/party_favors/list.html或者这个 app.com/party_favors/list.asdasdasda

是否有一种简单的方法只允许路由文件中的匹配条目中的某种格式?

谢谢!

Gra*_*eme 11

Rails 3提供了可以在路由上指定的:constraints选项.这可以将相同的URL路由到不同的控制器,具体取决于格式:

# http://app.com/party_favors.html gets routed to Web::PartyFavorsController#index
resources :party_favors, :module => "web", :constraints => {:format => :html}

# http://app.com/party_favors.xml gets routed to PartyFavorsController#index
resources :party_favors
Run Code Online (Sandbox Code Playgroud)

:requirements在Rails 2中尝试了这个选项,但它看起来并不灵活.我不知道有任何方法可以将它构建到Rails 2的路由中,所以你必须使用其他一个建议.