2013-09-24 36 views
0

我有以下的搜索表單:的Ruby-on-Rails的快速搜索表單

<%= form_tag edit_lot_path(:id), :class => "form-search", method: :get do %> 
    <div class="input-append"> 
    <%= text_field_tag :id, nil, :placeholder => "Lot #", :class => "input-mini search-query" %> 
    <%= button_tag(type: "submit", class: "btn") do %> 
     <i class="icon-search"></i> 
    <% end %> 
    </div> 
<% end %> 

我所試圖做的是通過一個搜索字段(ID的路徑),這樣用戶可以做快速查找ID。不幸的是我得到錯誤Couldn't find Lot with id=id

請注意,這是使用軌道4

+0

什麼'url'它去當u點擊提交?表單標記看起來不正確,你傳遞':id'作爲'edit_lot_path'的參數,它生成了「lots/id/edit」和'params [:id] = id' – tihom

回答

1

對於搜索的實現,理想情況下,你應該有單獨的行動如'搜索'在你的地段控制器。

在路線

resources :lots do 
    get :search, :on => :collection 
end 

在視圖文件

<%= form_tag search_lots_path, :class => "form-search", method: :get do %> 
    <div class="input-append"> 
    <%= text_field_tag :id, nil, :placeholder => "Lot #", :class => "input-mini search-query" %> 
    <%= button_tag(type: "submit", class: "btn") do %> 
     <i class="icon-search"></i> 
    <% end %> 
    </div> 
<% end %> 

在很多控制器

def search 
my_search_string = params['id'] 
// YOUR CODE GOES HERE 
end 
+1

謝謝ive實現這個作爲一個單獨的動作,有用! – user2732663