2012-12-14 110 views
-2

經過一個下午的網絡搜索花費。我必須問你。Link_to具有屬性的指定範圍

在我的應用程序中,我有一個遊戲列表中有一個或多個平臺關聯。我想向用戶建議一些基於平臺的過濾器。

我知道我必須使用具有屬性的命名範圍。但我不知道該怎麼做鏈接,

+0

嗨,:

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

而在意見的has_many:games'在'Plataform'模型中? – daniloisr

+0

'Has_and_belongs_to_many'to準確 – NotGrm

回答

2

如果使用:has_and_belongs_to_many一個偷懶的方法做,這是獲取所有plataforms和遊戲中的所有遊戲的uniq的數組:

@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])

EDIT

要創建您可以在GamesController使用PARAM的路線通過plataform過濾:你用`

<%= link_to games_path(:plataform => @plataform.id) %> 
+0

我的問題不是如何使我知道它的範圍。但是我如何在我的視圖中建立鏈接來過濾我的遊戲列表。或者很簡單,我如何設置示波器在我的控制器中使用 – NotGrm

+0

我更新了我的答案 – daniloisr