Rails 4 Bootstrap 在导航栏中搜索表单
Rails 4 Bootstrap Search Form in Navbar
我在 header 部分中有一些 rails-bootstrap-form 代码在 Rails 4 应用程序布局中呈现:
<div class="navbar-form navbar-right">
<%= bootstrap_form_tag controller: 'devices', action: 'index', method: 'get' do |f| %>
<%= f.search_field :search, hide_label: true, placeholder: 'Search' %>
<%= f.submit "Submit", :name => nil %>
<% end %>
</div>
我希望此搜索表单始终对设备控制器的索引操作执行 GET
请求。搜索实际上并不 link 到设备索引 url,而是将搜索参数附加到当前 url,如下所示:/devices/1?search=foo
。由于它只是附加到当前的 URL,因此从 /devices
.
开始搜索工作正常
我认为如果我将 controller: 'devices', action: 'index', method: 'get'
传递给 bootstrap_form_tag
它会强制 URL 重写,但我没有任何运气。
我最终去掉了 bootstrap_form_tag
,然后使用了标准的 form_tag
。我必须手动添加 bootstrap 表单 类。
<%= form_tag(devices_path, method: 'get', class: 'navbar-form navbar-right') do %>
<%= search_field_tag 'search', nil, class: 'form-control', placeholder: 'Search' %>
<%= submit_tag "Submit", class: 'btn btn-default', :name => nil %>
<% end %>
我认为 bootstrap-forms gem 会节省时间,但它绝对不适合搜索。
我在 header 部分中有一些 rails-bootstrap-form 代码在 Rails 4 应用程序布局中呈现:
<div class="navbar-form navbar-right">
<%= bootstrap_form_tag controller: 'devices', action: 'index', method: 'get' do |f| %>
<%= f.search_field :search, hide_label: true, placeholder: 'Search' %>
<%= f.submit "Submit", :name => nil %>
<% end %>
</div>
我希望此搜索表单始终对设备控制器的索引操作执行 GET
请求。搜索实际上并不 link 到设备索引 url,而是将搜索参数附加到当前 url,如下所示:/devices/1?search=foo
。由于它只是附加到当前的 URL,因此从 /devices
.
我认为如果我将 controller: 'devices', action: 'index', method: 'get'
传递给 bootstrap_form_tag
它会强制 URL 重写,但我没有任何运气。
我最终去掉了 bootstrap_form_tag
,然后使用了标准的 form_tag
。我必须手动添加 bootstrap 表单 类。
<%= form_tag(devices_path, method: 'get', class: 'navbar-form navbar-right') do %>
<%= search_field_tag 'search', nil, class: 'form-control', placeholder: 'Search' %>
<%= submit_tag "Submit", class: 'btn btn-default', :name => nil %>
<% end %>
我认为 bootstrap-forms gem 会节省时间,但它绝对不适合搜索。