2017-02-15 39 views
0

這個問題讓我瘋狂。form_tag總是重定向到同一個控制器#action(static_pages#index)

我在application.html.erb中有兩種形式。他們應該觸發pedidos#index和pedidos#excel動作,但是static_pages#index無論如何都會被觸發。我沒有收到任何錯誤消息。如果我手動編寫url/pedidos然後提交,第一種形式是有效的。

的routes.rb

root 'static_pages#index' 
get 'pedidos', to: 'pedidos#index' 
get 'excel', to: 'pedidos#excel' 

application.html.erb

<%=form_tag pedidos_path, :method => 'get' do %> 
<%= text_field_tag :search, params[:search], placeholder: 'Búsqueda por OSCAR' %> 
<%= submit_tag "Búsqueda", :name => nil, class: 'btn btn-info' %> 
<% end %> 

另一種形式:

<%=form_tag excel_path(format: :xlsx) , :method => 'get' do |f| %> 
<%=select_date Date.today, prefix: :fecha %> 
<%=submit_tag "Generar EXCEL de entregas", :name => nil, class: 'btn btn-info btn-sm' %> 
<% end %> 

最後這是如何路由的樣子:

pedidos_path GET /pedidos(.:format) pedidos#index 

excel_path GET /excel(.:format) pedidos#excel 

root_path GET/ static_pages#index 
+0

能告訴你的日誌,你按提交按鈕後? –

回答

1

最後事實證明這是一個HTML的問題,我有嵌套在引導導航欄形式的代碼裏面的形式。

這樣,它的工作原理:

<div class="form-group"> 
    <%= form_for '', url: {controller: 'pedidos', action: 'index' }, method: :get, class: 'navbar-form navbar-left' do |f| %> 
    <%= text_field_tag :search, params[:search], placeholder: 'Búsqueda por OSCAR' %> 
    <%= submit_tag "Búsqueda", :name => nil, class: 'btn btn-info' %> 
    <% end %> 
</div> 
相關問題