经过一个下午的网络搜索。我得问你。
在我的应用程序中,我有一个与一个或多个平台相关联的游戏列表。我想向用户提出一些基于平台的过滤器。
我知道我必须使用具有属性的命名范围。但我不知道如何制作链接
经过一个下午的网络搜索。我得问你。
在我的应用程序中,我有一个与一个或多个平台相关联的游戏列表。我想向用户提出一些基于平台的过滤器。
我知道我必须使用具有属性的命名范围。但我不知道如何制作链接
如果您使用:has_and_belongs_to_many
惰性方法来执行此操作,则获取所有平台并游戏所有游戏的 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])
编辑
要创建路由,您可以使用 GamesController 中的参数按平台过滤:
def index
@games = params[:plataform] ? Plataform.find(params[:plataform]).games : Game.all
end
在意见中:
<%= link_to games_path(:plataform => @plataform.id) %>