2015-04-04 82 views
0

我试图在我的应用程序上实现搜索功能,我想知道什么是最好的方法。Ruby模型搜索

我有一个具有2个布尔列(三,五)的玩家模型< - 列名称 ,我试图抓取它们用于可视化,具体取决于列是真还是假。 (显示所有三个或全部五个)

我应该为它们中的每一个创建控制器还是我应该在播放器控制器中定义它们?

至于模型,最好的方式来搜索它们会是这样的?

players = Player.all 
players.find_by three: true 

还是有更优雅的方式?

+0

看看这个[RailsCast](http://railscasts.com/episodes/111-advanced-search-form)。 – MarsAtomic 2015-04-04 02:40:50

回答

1

如果您的情况变得更加复杂,请打开一个查询对象。在此之前,这会让你接近。然后在你的参数中,你所要做的就是将查询设置为'三'或'五'来获得这种类型的球员。

class Player 
    scope :by_three -> where(three: true)} 
    scope :by_five -> where(five: true)} 
end 

def index 
    if params[:query] == 'three' 
    @players = Player.by_three 
    elsif params[:query] == 'five' 
    @players = Player.by_five 
    end 
end 
+0

我会试试看。 – Onilol 2015-04-04 04:00:01