1

だから私は、2 つのオブジェクトを比較することになっている特定のフォームを持っています。1 つはユーザーが現在表示しているページで、もう 1 つは検索対象のページです。

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'

アクセスしようとしているように見える URL は次のとおりです。http://localhost:3000/items/1?utf8=%E2%9C%93&q=[ITEM IS HERE]&search_item_id=3&current_item=1

すべてのパラメーターは正しいですが、正しいアクションに行きたくないようです (私が今欲しいのは、アクションに入って、そこで必要なことを実行できるようにすることだけです)。

私が間違っていることは何か分かりますか?

4

2 に答える 2

0

あなたのルートは次のようにすべきだと思います:

get "/compare_search", to: 'items#search_related', as: 'compare_search'
于 2013-09-16T15:44:25.033 に答える