我有一个由开发人员为我构建的小型Rails应用程序,并且代码有很多异常,我尝试更正。我争夺一个奇怪的问题,will_paginate给我下面的错误:Rails 3 will_paginate错误
The @home variable appears to be empty. Did you forget to pass the collection object for will_paginate?`
我GOOGLE了错误信息,但没有发现任何解决这个问题有用的,所以我转交给你,计算器。
所以我的搜索形式找到一个位置,看起来像这样:
<%= form_for :search_place, :url => search_results_home_index_path, :html => {:class=>""} do |f| %>
<%= f.hidden_field :search_type, :value=>2 %>
<%= f.text_field :city,{:placeholder => "Town", :class=>"input-small"} %>
<%= f.text_field :county,{:placeholder => "County", :class=>"input-medium"} %>
<%= f.select(:country, db_countries.map(&:country), {:include_blank => 'Select a Country'}, :class=>"input-medium") %>
<%end%>
其中home_controller.rb引用这样:从选址模型location.rb
def search_results
:
elsif !params[:search_place].blank?
session[:search_params] = params[:search_place]
@documents = Location.search_location(params[:search_place], params[:page])
end
并拿起集合
def self.search_location(search_params,page,per_page=50)
condition_str = ""
condition_str += "(UPPER(locations.town) like '%#{search_params[:city].upcase}%' OR UPPER(locations.town) like '%#{search_params[:city].upcase}%') AND " unless search_params[:city].blank?
condition_str += "(UPPER(locations.county) like '%#{search_params[:county].upcase}%' OR UPPER(locations.county) like '%#{search_params[:county].upcase}%') AND " unless search_params[:county].blank?
condition_str += "(UPPER(locations.country) like '%#{search_params[:country].upcase}%' OR UPPER(locations.country) like '%#{search_params[:country].upcase}%') " unless search_params[:country].blank?
unless condition_str.blank?
self.where(condition_str).paginate(:per_page=>per_page,:page=>page)
else
self.where("1=0").paginate(:per_page=>1,:page=>page)
end
end
搜索结果显示在搜索结果表中,如下所示:
<%= render "documents/document_common_list"%>
<%= will_paginate @documents, :renderer => BootstrapLinkRenderer %>
所以这翻出了正确的搜索结果,并显示正确的第一页和寻呼块,但与上述错误(约@Home)崩溃,如果我尝试访问其他网页。
will_paginate以这种方式在网站上的其他地方完美工作,除了集合是在控制器而不是模型中构建的,所以这可能是问题(我不完全确定哪个是正确的方法来做到这一点,但我正在与别人的代码一起努力工作)。
会非常感谢任何指针移动我在正确的方向
好 - 赶快 - 谢谢。这里迟到了,我已经喝了一杯啤酒,但是我会在早上测试这个,并且报告回来 –
刚刚测试过并且很有效 - 非常感谢 –
没问题。很高兴听到它的工作。 – RoryB