禁用:rails3中的.format路由

时间:2011-01-02 17:54:07

标签: ruby-on-rails routing formatting ruby-on-rails-3

你能告诉我如何在rails路由中禁用。:format选项吗?我只需要html ...

4 个答案:

答案 0 :(得分:48)

在3.1.1中,至少可以在路线的末尾添加:format => false

在此处找到:http://guides.rubyonrails.org/routing.html#request-based-constraints 根据第3.11节“路线全球化”

例如..

match '*pages' => 'pages#show', :format => false

哪会允许参数[:pages]包含句号。

答案 1 :(得分:16)

http://guides.rubyonrails.org/routing.html#request-based-constraints

这会限制您的路线只接受html格式:

constraints :format => "html" do
  resources :posts do
    resources :comments
  end
end

但是,它不会从(.:format)输出中删除rake routes部分。

答案 2 :(得分:10)

您可以围绕范围包装路径(Rails 4):

scope format: false do
  # your routes here
end

答案 3 :(得分:4)

如果你想要漂亮的网址并且不喜欢:format => false,你可以试试这个:

# :format must match the empty string
constraints :format => // do
  resources :monkeys
end

即使使用with_options:format => false选项也很麻烦,特别是如果您有很多路线。