私は自分のウェブサイトに簡単な検索を実装しました。そのアイデアは、「検索するフィールドを選択してから、検索クエリを入力する」というものです。ただし、検索オプションの少なくとも 1 つは、テキスト フィールドの自由度を持たせるのではなく、ドロップダウン メニューに限定する必要があります。
私はいくつかのオプションを読んでテストしており、いくつかの投稿:on_changeといくつかの詳細な JavaScript ソリューションを見てきましたが、何をすべきかわかりませんでした。
現在のビューには のselect_tag後に がありますがtext_field_tag、 の値を確認し、select_tagそれを使用して次のフィールドが か かを判断しtext_field_tagたいと考えていselect_tagます。私は Haml を使用しています。これは私の見解です。
#simple-search-options
=form_tag packages_path, :method=>'get' do
Search by:
= select_tag :search_option, options_for_select(@search_options, @option)
= text_field_tag :search_string, @s_string
= submit_tag 'Search'
前の検索で入力された値が何であれ、select_tagと のデフォルト値を設定していることに注意してください。変数とはそこから来ています。これは、ページが最初に生成されたときに、の値に基づいて何を表示するかを既に選択していることを意味するため、ソリューションが複雑になる可能性があります。text_field_tag@option@s_string@option
div最初のselect_tagと の間に を貼り付けたいと思っていましsubmit_tagたが、コントローラーとビューによってデータが取り込まれますが、それを実行する方法がわかりませんでした。