-2

午後にウェブ検索に費やした後。私はあなたに尋ねなければなりません。

私のアプリには、1つ以上のプラットフォームが関連付けられているゲームのリストがあります。プラットフォームに基づいたフィルターをユーザーに提案したいと思います。

名前付きスコープを属性とともに使用する必要があることはわかっています。でもリンクの作り方がわからない

4

1 に答える 1

2

怠惰な方法を使用:has_and_belongs_to_manyしてこれを行う場合は、すべてのプラットフォームを取得して、すべてのゲームの一意の配列をゲームします。

@games = @plataforms.map(&:games).uniq

使用する場合:has_many

# in your game model
scope :by_plataforms, lambda { |plataforms_ids| where(:plataform_id => plataforms_ids) }

サンプル呼び出し:Game.by_plataforms([1, 2, 3])

編集

ルートを作成するには、GamesControllerのパラメータを使用してplataformでフィルタリングできます。

def index
  @games = params[:plataform] ? Plataform.find(params[:plataform]).games : Game.all
end

そして、ビューで:

<%= link_to games_path(:plataform => @plataform.id) %>
于 2012-12-14T18:22:56.817 に答える