RailsにはProduct
モデルがあります。products
同時に複数を取得する必要がある場合もあります(ただし、リストは完全に動的であるため、Rails側では実行できません)。
したがって、この呼び出しでは、1回の呼び出しで製品1、3、9、24を取得する必要があるとします。これは可能ですか?もしそうなら、私はこれのためにカスタムルートが必要ですか、そして私は私のコントローラーに何を入れますか?
つまり、このようなものは機能しますか?/products/1,3,9,24
RailsにはProduct
モデルがあります。products
同時に複数を取得する必要がある場合もあります(ただし、リストは完全に動的であるため、Rails側では実行できません)。
したがって、この呼び出しでは、1回の呼び出しで製品1、3、9、24を取得する必要があるとします。これは可能ですか?もしそうなら、私はこれのためにカスタムルートが必要ですか、そして私は私のコントローラーに何を入れますか?
つまり、このようなものは機能しますか?/products/1,3,9,24
ルートをまったく変更する必要はないと思います。コントローラー/モデルでそれらを解析する必要があります。
def show
@products = Product.find params[:id].split(',')
end
次に にリクエストを送信するとhttp://localhost/products/1,3,9,24
、@products は 4 つのレコードを返す必要があります。
これは、検索のような限られた範囲でインデックスを作成するためのリクエストであると考えているので、次のようにします。
class ProductsController < ApplicationController
def index
@products = params[:product_ids] ? Product.find(params[:product_ids]) : Product.all
end
end
次に、url 配列を使用してこれにリンクします。
<%= link_to 'Products', products_path(:product_ids => [1, 2, 3]) %>
これにより、次のような標準のインデックスなしの url 配列が作成されます
product_ids[]=1&product_ids[]=2 ...
それが役立つことを願っています。
Product.where(:id => params[:ids].split(','))