0

我正在尝试在控制器中使用 params[:id] 一些参数。但是它不接受特殊字符之后的任何输入,例如?或者 #。

例如:

localhost:3000/analysis/good?bad

是网址。
这是 Analysis_controller.rb 的代码

class AnalysisController < ApplicationController
  def show
    @analyzer = params[:id]
    ....
    ....
  end
end

这里@analyzer只包含good,不包含good?bad

如何解决这个问题?是否有任何替代 params[:id] 可能有帮助的方法?

4

2 回答 2

0

一种替代方法是将该参数命名为其他名称,例如type

localhost:3000/analysis/good?type=bad

然后在你的控制器中你可以做@analyzer = params[:type]

您可以将这些参数传递给您的 URL 助手,如下所示:

analysis_path(id: "good", type: "bad")
于 2013-05-29T10:06:11.263 回答
0

您必须对参数进行编码,否则它会进入散列:

localhost:3000/analysis/good%3Fbad

在 Ruby 中,您可以使用CGI::escape.

于 2013-05-29T10:01:01.350 回答