2017-04-02 59 views
0

我想使用Ransack在我的代码中实现Rails应用程序的搜索功能。每当我从索引页面进行搜索时,屏幕会短暂闪烁,但索引页面根本不会改变。Ransack不改变索引页面

这里是我的搜索表单代码:

<div id="search"> 
<% content_for :search do %> 
    <%= search_form_for @search do |f| %> 
    <div class="field"> 
     <%= f.label :name, "Restaurant Name:" %> 
     <%= f.text_field :name, size: 50 %> 
    </div> 
    <div class="field"> 
     <%= f.label :address1, "Address (first line)" %> 
     <%= f.text_field :address1, size: 50 %> 
    </div> 
    <div class="field"> 
     <%= f.label :city, "City" %> 
     <%= f.text_field :city, size: 50 %> 
    </div> 
    <div class="field"> 
     <%= f.label :state, "State" %> 
     <%= f.text_field :state, size: 2 %> 
    </div> 
    <div class="field"> 
     <%= f.label :zip, "ZIP Code" %> 
     <%= f.text_field :zip, size: 5 %> 
    </div> 
    <div class="actions"> 
     <%= f.submit "Search" %> 
    </div> 
    <% end %> 
<% end %> 
</div> 

这里是我的控制器中的索引操作:

def index 
    @search = Restaurant.search(params[:q]) 
    @restaurants = @search.result.order('name').page(params[:page]).per(10) 
    end 

这是当我尝试搜索的内容打印到我的控制台在名称字段中的“另一个”字样:

Started GET "/restaurants?utf8=%E2%9C%93&q%5Bname%5D=Another&q%5Baddress1%5D=&q%5Bcity%5D=&q%5Bstate%5D=&q%5Bzip%5D=&commit=Search" for 162.228.136.142 at 2017-04-02 16:04:12 +0000 
Cannot render console from 162.228.136.142! Allowed networks: 127.0.0.1, ::1, 127.0.0.0/127.255.255.255 
Processing by RestaurantsController#index as HTML 
    Parameters: {"utf8"=>"✓", "q"=>{"name"=>"Another", "address1"=>"", "city"=>"", "state"=>"", "zip"=>""}, "commit"=>"Search"} 
    Rendering restaurants/index.html.erb within layouts/application 
    Rendered restaurants/_restaurant_search_form.html.erb (2.3ms) 
    Restaurant Load (0.5ms) SELECT "restaurants".* FROM "restaurants" ORDER BY name LIMIT ? OFFSET ? [["LIMIT", 10], ["OFFSET", 0]] 
    (0.1ms) SELECT COUNT(*) FROM "restaurants" 
    Rendered restaurants/index.html.erb within layouts/application (41.0ms) 
Completed 200 OK in 132ms (Views: 128.9ms | ActiveRecord: 0.6ms) 

回答

0

我知道我做错了什么。显然,符号的命名约定非常重要。而不是“:name”,我不得不将它改为“:name_cont”以使用“contains”条件。