0

私はこの検索コントローラのURLを持っています:

http://localhost:3000/search/index?utf8=✓&search=Search_terms

これをどのようにトリミングできますか:

http://localhost:3000/search=query

検索コード:

#search-box
  #search-form
    = form_tag search_index_path, :method => 'get'  do
      = text_field_tag :search, params[:search], :autocomplete => "off"
      %button#search-button{:type => "submit"}
        %span Go!

それとも可能ですか??

お知らせ下さい。

4

3 に答える 3

2

これは、Ruby(またはRails)自体では不可能です。必要がある

  1. フォームの送信イベントにJavaScriptコールバックを追加します
  2. フォームを検証する
  3. search=フォームのターゲットURLを+入力値で構成されるものに置き換えます。

すべての文字をURLに含めることができるわけではないことに注意してください。これが、検索クエリをURIの一部としてではなく、パラメーターとして渡す必要がある理由です。

于 2012-07-09T11:24:29.620 に答える
1

URLにを表示したくない場合は、フォームでparams[search]メソッドをからに変更する必要がありGETますPOST

読んでください:http ://www.cs.tut.fi/~jkorpela/forms/methods.html

または、質問にフォームコードを含めてください...

于 2012-07-09T11:10:31.013 に答える
0

(ただの)Railsで完全に可能です。

送信先のページがルート パスであることを確認してください

(config/routes.rb 内)

root :to => "search#index"

次に、フォームがに投稿されていることを確認してくださいroot_path

「雪だるま」を取り除くのは少しトリッキーです。UTF8 以外の文字を送信する人がいないことが確実な場合は、form_tag ヘルパーを避けて、フォームをハンドコーディング (このような短いフォームで簡単) することで、それを取り除くことができます。

于 2012-07-09T11:32:50.347 に答える