2015-01-14 54 views
0

这里的事情:我在我的表单中有多个搜索字段。但是,当我试图做一个倍数搜索时,我得到了错误RequestURITooLarge ...我想知道它是否存在一种方法来避免这个问题。每次填充文本框或日期字段时都会增加url并得到错误。我也尝试了一个重置​​按钮,但只是清理文本字段。这里的代码让你理解我使用的方法,并且可能会以某种方式帮助你。韩国社交协会!错误RequestURITooLarge搜索红宝石

View_item

def self.search(s_codigo, s_den_cont, s_marca) 
where("codigo ilike :s_c and den_cont ilike :s_d and marca ilike :s_m", s_c: "%#{s_codigo}%", s_d: "%#{s_den_cont}%", s_m: "%#{s_marca}%") 
end 

#Search section #2 

def self.search_fec_min(s_codigo, s_den_cont, s_marca, s_fec_min) 
where("codigo ilike :s_c and den_cont ilike :s_d and marca ilike :s_m and date_expired >= :s_fmin", s_c: "%#{s_codigo}%", s_d: "%#{s_den_cont}%", s_m: "%#{s_marca}%", s_fmin: "#{s_fec_min}") 
end 

索引

<%= text_field_tag :s_codigo, params[:s_codigo], placeholder: "Search for cod" %> 
<%= text_field_tag :s_den_cont, params[:s_den_cont], placeholder: "Search for Denominación" %> 
<%= text_field_tag :s_marca, params[:s_marca], placeholder: "Search brand" %> 
<%= date_select :s_fec_min, params[:s_fec_min], placeholder: "Search for date", :include_blank => true %> 

控制器

if self.is_date(params[:s_fec_min]) 
@items = View_item.all.order("date_expired ASC").page(params[:page]).per(15).search_fec_min(params[:s_codigo], params[:s_den_cont], params[:s_marca], params[:s_fec_min])  
    elsif (params[:s_codigo] != "" or params[:s_den_cont] != "" or params[:s_marca] != "") 
@items = View_item.all.order("date_expired ASC").page(params[:page]).per(15).search(params[:s_codigo], params[:s_den_cont], params[:s_marca]) 
    else 
@items = View_item.all.order("date_expired ASC").page(params[:page]).per(15) 
end 
+0

也许这可以帮助:http://stackoverflow.com/questions/16602028/request-uri-too-large-in-rails –

+0

韩国社交协会YEV。接缝是解决方案。 – ingzane

回答

1

MAX_URI_LENGTH设置为仅2083个字符的WEBrick服务器。在访问长度超过此限制的URL时会抛出WEBrick :: HTTPStatus :: RequestURITooLarge异常。

尝试切换到不同的服务器:

#Gemfile 
gem 'thin' 

$bundle install 
$ rails s 

=> Booting Thin 
=> Rails 4.2.0 application starting in development on http://localhost:3000 
=> Run `rails server -h` for more startup options 
=> Ctrl-C to shutdown server 
Thin web server (v1.6.3 codename Protein Powder) 
Maximum connections set to 1024 
Listening on localhost:3000, CTRL+C to stop