16

'输出是什么(.:format)意思?rake routes

users GET    /users(.:format)          users#index
4

1 回答 1

33

如果您检查您的index操作,Users Controller那么您将看到类似这样的内容

def index
  @users = User.all

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

因此,这种格式就是将要生成的响应类型。

在路由中,无论控制器的操作中定义了何种格式,都会创建响应类型的占位符。

因此,如果您的 URL 类似于:-

users GET /users        --> users/index.html.erb will be rendered
users GET /users.json   --> users/index.json.erb will be rendered

同样,如果您想要以PDFxls格式响应,那么您只需要定义format.pdforformat.xls并且您还必须定义这些新MIME类型,这些新类型默认情况下在某些初始化程序文件中的 rails 中不存在。

因此,如果提出如下请求:-

users GET /users.xls     --> users/index.xls.erb will be rendered

然后,您的路线文件将仅format.xls在 index 操作中查找,并且users/index.xls.erb将呈现相应的视图文件装置。

于 2013-07-12T10:37:56.100 回答