所以我有一个特定的形式,它应该是比较两个对象。一个是他们所在的当前页面,另一个是我们正在搜索的页面。
以下是 show.html.haml 中的表单:
%form.form-inline
= form_tag compare_search_path, method: 'get' do
= text_field_tag :q, params[:q], class: "typeahead", "data-provide" => "typeahead", autocomplete: "off"
= hidden_field_tag :search_item_id, '', class: "search_item_id"
= hidden_field_tag :current_item, @item.id
= submit_tag "Search", name: nil, class: "btn"
在我的控制器里面,我有:
def search_related
puts "*" * 100
puts "It's in here and working."
end
然而,它永远不会进入该方法,它只是尝试进行搜索,并且该方法永远不会被使用。
我的 routes.rb 有:
get "/compare_search" => 'items#search_related'
它似乎尝试去的网址是:http://localhost:3000/items/1?utf8=%E2%9C%93&q=[ITEM IS HERE]&search_item_id=3¤t_item=1
所有参数都是正确的,但它似乎并不想要采取正确的行动(我现在想要的只是让它进入动作,所以我可以在那里做我需要的)。
知道我做错了吗?
答案 0 :(得分:1)
你有2个表单元素。
%form.form-inline
= form_tag compare_search_path, method: 'get' do
删除顶行并制作:
= form_tag compare_search_path, method: 'get', class: "form-inline" do
答案 1 :(得分:0)
我在想你的路线应该是:
get "/compare_search", to: 'items#search_related', as: 'compare_search'