如何在rails中实现以下路由:
如果请求需要html
,而不是路由到特定操作,请说应用程序#index
如果是json
格式请求,则通常会将资源路由到产生请求的json
显然,这是单页面应用程序的一个用例,其中rails主要用于服务json
。大多数页面都是非常简单的布局,其中一些值是自举的。
感谢提示。
答案 0 :(得分:1)
在Rails中解决此问题的方法可以在控制器中以单个操作进行处理。在routes文件中,您只需声明资源:
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"}