0

如何在rails中实现如下路由:

  • 如果请求需要html,而不是路由到特定操作,比如说 application#index

  • json格式请求的情况下,将资源路由到正常情况下产生请求的操作json

显然,这是单页应用程序的用例,其中 rails 主要仅用于服务jsons。大多数页面只是非常简单的布局,其中一些值是自举的。

感谢您的提示。

4

1 回答 1

1

在 Rails 中解决此问题的方式可以在控制器中通过单个操作进行处理。在路由文件中,您只需声明资源:

resources :posts

控制器看起来像这样:

def index
  @posts = Post.all

  respond_to do |format|
    format.html  # index.html.erb
    format.json  { render :json => @posts }
  end
end

如您所见,响应的类型取决于请求的类型。

但是,如果你真的想根据类型进行路由,我想你可以尝试这样的事情:

match 'posts/:id.:format' => 'posts#html_respond', :constraints => {:format => "html"}
match 'posts/:id.:format' => 'posts#json_respond', :constraints => {:format => "json"}
于 2013-03-16T16:46:23.473 回答