这个问题让我发疯了。
我在application.html.erb中有两个表单。他们应该触发pedidos #index和pedidos #excel actions,但无论如何都会触发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问题,我将表单嵌套在Bootstrap导航栏表单代码中。
这种方式有效:
<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>