如何在rails中实现如下路由:
如果请求需要
html
,而不是路由到特定操作,比如说 application#index在
json
格式请求的情况下,将资源路由到正常情况下产生请求的操作json
显然,这是单页应用程序的用例,其中 rails 主要仅用于服务json
s。大多数页面只是非常简单的布局,其中一些值是自举的。
感谢您的提示。
如何在rails中实现如下路由:
如果请求需要html
,而不是路由到特定操作,比如说 application#index
在json
格式请求的情况下,将资源路由到正常情况下产生请求的操作json
显然,这是单页应用程序的用例,其中 rails 主要仅用于服务json
s。大多数页面只是非常简单的布局,其中一些值是自举的。
感谢您的提示。
在 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"}