2013-02-28 77 views
4

我有兩個不同的控制器(scholarships_controller,scholarships_browse_controller),看看獎學金模型。我想讓我的Ransack搜索功能在當前頁面上顯示搜索結果。因此,例如,如果我在/ scholarships_browse並使用搜索功能,我希望它使用scholarships_browse_controller並在/ scholarships_browse上顯示結果。RoR Ransack搜索問題

目前,如果我搜索/ scholarships_browse它使用scholarships_controller並重定向到/獎學金來顯示結果(而不是/ scholarships_browse)。

代碼ScholarshipsBrowseController和ScholarshipsController

def index 
    @search = Scholarship.search(params[:q]) 
    @scholarships = @search.result.page(params[:page]).per(3) #allows 3 scholarships on a page at a time 
    @search.build_condition 

    respond_to do |format| 
     format.html # index.html.erb 
     format.json { render json: @scholarships } 
    end 

代碼獎學金瀏覽index.html.erb:

<%= search_form_for @search do |f| %> 
    <%= f.condition_fields do |c| %> 
     <div class="field"> 
      <%= c.attribute_fields do |a| %> 
       <%= a.attribute_select %> 
      <% end %> 
      <%= c.predicate_select compounds: false, only: [:cont, :eq, :gt, :lt] %> 
      <%= c.value_fields do |v| %> 
       <%= v.text_field :value %> 
      <% end %> 
     </div> 
    <% end %> 
    <div class="actions"><%= f.submit "Search" %></div> 
<% end %> 

所以,我想特別是我問我如何確保我使用獎學金瀏覽公司當我在/ scholarships_browse時,ntroller索引而不是獎學金控制器索引?

回答

12

在您的看法:

<%= search_form_for @search, url: RAILS_ROUTEHERE do |f| %> 
... 
<%- end %> 

search_form_for其擴展爲form_for,這樣你就可以使用:url參數來告訴我應該是它的動作形式(您可以查看網頁源代碼當你在瀏覽器上渲染它時,你可以檢查標籤<form action="">,以確保它指向正確的路線。

+0

很酷,如果我的回答對你有幫助,我將非常感謝正面的投票並選擇我的答案爲已接受。 – rorra 2013-03-03 01:29:55