0

購入オプションを含むフォームを使用したいのですが、ユーザーはインベントリをフィルタリングして、次のような探しているものを見つけることができます。

色: _青 _緑 _赤

サイズ: _大 _中 _小

そして、それらのオプションをチェックボックスにして、在庫があるものを確認できるようにします.

私の考えは、「在庫の更新」送信ボタンを使用して送信されるフォームを作成することです (ユーザーにボタンをクリックさせるのではなく、自動的に更新する方法を誰かが知っている場合)。

フォームが送信されると、データベース検索が実行され、パラメータに一致するオブジェクトが返されます。

def find_items
    @products = Product.where(:color => params[:color], :size => params[:size])
    redirect_to '/products/search'
end

ただし、私の理解では、チェックボックスがオンになっている場合は 1 が返されます。この動作を変更して、「青」や「中」などを送信する方法はありますか?また、何もチェックされていない場合はどうなりますか? / 複数の項目がチェックされていますか? これはうまくいきますか?

4

1 に答える 1

0

コードを見ると、色の値とサイズの値を 1 つずつ送信する必要があります。ラジオ ボタンを使用します。チェック ボックスは、一度に複数の値を投稿するためのものです。

あなたはこのようにしてみてください:-

Blue <%=radio_button_tag 'color', 'blue' %>
Green <%=radio_button_tag 'color', 'green' %>
red <%=radio_button_tag 'color', 'red' %>

ラジオ ボタンが選択されていない場合、空の値がコントローラに送信されます。したがって、それに応じて処理する必要があります。

于 2013-08-28T02:31:49.613 に答える