joh*_*han 5 search ruby-on-rails-3
我有一个错误说:
请求URI太大
实际上我正在尝试在我的实验rails 3应用程序上添加搜索功能,该应用程序接受a string和a date作为搜索参数.由于某些原因,当我单击提交按钮进行搜索时,浏览器中的URL很长,我有上面提到的这个错误.
这是我的模型的代码trap.rb:
class Trap < ActiveRecord::Base
 def self.search(empcode, date_entry)
  if empcode and date_entry
   where('empcode LIKE ? and date_entry = ?', "%#{empcode}%", "#{date_entry}")
  else
   scoped
  end
 end
end
在控制器中traps_controller.rb:
class TrapsController < ApplicationController
 def index
  @traps = Trap.search(params[:search_empcode], params[:search_date_entry])
  respond_to do |format|
   format.html # index.html.erb
   format.xml  { render :xml => @traps }
  end
 end
 .
 .
 .
end
在视图中index.html.erb:
<h2>TRAP 1.0</h2>
<%= form_tag traps_path, :method => 'get' do  %>
 <p>
  Employee Code: <%= text_field_tag :search_empcode, params[:search_empcode] %>
  Date Entry: <%= date_select :search_date_entry, params[:search_date_entry] %>
 </p>
 <p class="buttons"> <%= submit_tag "Search", :name => nil %></p>
<% end %>
<table>
 <tr>
  <th>Empcode</th>
  <th>Date entry</th>
  <th></th>
  <th></th>
  <th></th>
 </tr>
 <% @traps.each do |trap| %>
 <tr>
  <td><%= trap.empcode %></td>
  <td><%= trap.date_entry %></td>
  <td><%= link_to 'Show', trap %></td>
  <td><%= link_to 'Edit', edit_trap_path(trap) %></td>
  <td><%= link_to 'Destroy', trap, :confirm => 'Are you sure?', :method => :delete %></td>
 </tr>
 <% end %>
</table>
<br />
<%= link_to 'New Trap', new_trap_path %>
有人可以告诉我这个有什么问题吗?如果你知道一些替代品.请帮忙......
实际上,我在针对 google 的 openID 进行身份验证时遇到了此错误,他们使用数百个 GET 参数将我重定向回我自己的应用程序。我不知道问题是什么,但我没有使用内置的 Rails 服务器,而是开始使用 Thin,错误神奇地消失了。必须只是服务器内部处理它们的方式。
gem install thin然后thin start从 Rails 根目录尝试。