私はモデルのProductを持っています。このモデルの表示ビューでは、ユーザーが別のProductを表示できるようにする選択ボックスが必要です。したがって、ユーザーが「製品1」ページを見る場合、選択ボックスから「製品2」を選択してその製品を見ることができます。モデルのインスタンスを切り替えるフォームを作成するにはどうすればよいですか?
は、ここで私は、この選択ボックスを作成するために使用しているコードです:
<%= form_tag({:controller => "products", :action => "show"}, :method => :get) do %>
<%= select_tag :product_id, options_from_collection_for_select(Product.all, :id, :title) %>
<%= submit_tag 'Go' %>
しかし、これは動作しません。別の製品を選択して[Go]をクリックすることもできますが、ボックスで選択したものではなく、同じ製品に移動します。
私はここで間違っていますか?
基本的に、私が代わりにこのような何かの選択ボックスを使用しようとしている:
<% Product.all.each do |p| %>
<%= link_to p.title, p %>
<% end %>
は、ここで私は、コントローラの私のshowアクションのために持っているものだ:
@product = Product.find(params[:id])
rescue ActiveRecord::RecordNotFound
flash[:alert] = 'The product you were looking for could not be found'
redirect_to products_path
私はshowアクションで任意のコードを持っていない、それはちょうどあなたのshowアクションには、少なくとも以下を持っている必要があり – croceldon
....ストレートビューに通過します: ' DEF @product =製品を表示.find(params [:id]) end あなたのために@productを自動的に定義する宝石を使用しない限り – Whereisccguys
私の悪い - 私は使用しているフィルタの前に忘れてしまった。それは今私の元の投稿に追加されました。 – croceldon