0

我有这个规则:

  match '*urlnames' => 'home#searching_names'

URL 地址类似于website.com/john.html。问题是,在我看到的日志中

  Parameters: {"urlnames"=>"john"}

没有.html扩展名。文本扩展很重要,我需要在控制器中对其进行测试。我尝试将此部分添加到路由规则中:

  match '*urlnames' => 'home#searching_names', :defaults => { :format => "html" }

但还是一样,在日志中是

Parameters: {"urlnames"=>"john"}

如何在控制器中捕获扩展名?

4

1 回答 1

2

request.parameters[:format]您可以通过或(作为 MIME 类型)通过访问请求的格式request.format

但是,您也可以使用respond_to块:

def show
  file = params[:urlnames]
  respond_to do |format|
    format.html { ... }
    format.txt  { ... }
  end
end

...呈现一些文本或发送一些数据或文件的代码在哪里。

如果您只是想显示一些静态文件,只需将它们放在公共目录中,然后完全绕过 Rails。

于 2012-06-12T08:19:01.017 回答