Ruby on rails Rails 3元搜索问题,但仅在生产中存在

Ruby on rails Rails 3元搜索问题,但仅在生产中存在,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我一定是做错了什么。我有一个简单的搜索,它在开发(使用SQLite3DB)中运行良好,但在生产(使用MYSQL DB)中运行不好。不知道如何调试 详情如下: 控制器: def index @search = Individual.search(params[:search]) @individuals = @search.all # @individuals = @search.order(:lastname).page params[:page] end 视图: 在生产环境中使用

我一定是做错了什么。我有一个简单的搜索,它在开发(使用SQLite3DB)中运行良好,但在生产(使用MYSQL DB)中运行不好。不知道如何调试

详情如下:

控制器:

def index
  @search = Individual.search(params[:search])
  @individuals = @search.all
  # @individuals = @search.order(:lastname).page params[:page]
end
视图:

在生产环境中使用控制台没有问题:

Individual.search :lastname_like => 'Smith', :firstname_like => ''
=> #<MetaSearch::Searches::Individual:0blahblah....
有什么想法吗?或者至少如何调试

Rails 3.0.7
Metasearch 1.0.3

如果您在控制台上获得输出,那么您的功能工作正常。要调试,请尝试在每个步骤中记录信息,并查看出错的地方,例如打印传递给搜索函数的参数、搜索返回的输出等,并查看出错的地方。您还可以查看production.log中激发的db查询,并尝试从终端手动运行它,然后查看结果


您甚至可以尝试在生产服务器上以开发模式运行应用程序,将database.yml更改为使用生产数据库和mysql,以查看这是否是一个特定于环境的问题。

是的,我想说这是url的问题。据我所知,它应该是这样的:

/individuals/?utf8=%E2%9C%93&search%5Bfirstname_like%5D=&search%5Blastname_like%5D=hermans&commit=Search

我不使用haml,所以我不能说发生了什么,但是你的表格有问题。它在每一个编码字符中加上25。您页面上的编码设置正确吗?

我想知道乘客或行李架是否做了一些奇怪的事情。我在Dreamhost上。(但我的其他应用程序均不受影响)
Started GET "/individuals/?utf8=%25E2%259C%2593&search%255Bfirstname_like%255D=& search%255Blastname_like%255D=hermans&commit=Search" for 68.87.23.92 at Thu May 26 09:22:31 -0700 2011
  Processing by IndividualsController#index as HTML
  Parameters: {"commit"=>"Search", "search%5Bfirstname_like%5D"=>"", "utf8"=>"%E2%9C%93", "search%5Blastname_like%5D"=>"smith"}
/individuals/?utf8=%E2%9C%93&search%5Bfirstname_like%5D=&search%5Blastname_like%5D=hermans&commit=Search