基于字段内容搜索 - Ruby on Rails

时间:2012-02-20 22:27:34

标签: ruby-on-rails ruby search link-to

所以我在rails应用程序上创建了一个ruby,在我的视图中我有一个link_to列表,每个都是不同的控制台

在我的数据库表中,我有一个名为console的字段。

我想要做的是当用户点击链接时,例如Playstation 3,它将返回该表列中列出的Playstation 3的所有记录。

我想知道如何做到这一点,我尝试在互联网上搜索,但没有找到类似的东西。

对于一个我没有多久完成的项目。我正在接受我在视图的链接中所说的内容以及我将在games_controller中添加的内容。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:2)

基本要点是有一个控制器动作,它将返回由控制台过滤的游戏列表。例如,

# GamesController.rb
def index
   @games = Game.find_by_console(params[:console])
end

然后您可以为任何特定的控制台创建链接:

link_to 'XBOX', games_path(:console => 'XBOX')

这会导致对GET

/games?console=XBOX请求

如果您有一组预定义的控制台,您可能会考虑将它们变成Consoles模块中的常量,以避免在任何地方对它们进行硬编码。

更新:

由于您尝试在同一个链中实现搜索和过滤,因此如果find_by_console不存在,则需要确保# GamesController.rb def index @games = Game.search(params[:search]) @games = @games.find_by_console(params[:console]) unless params[:console].blank? end 未被调用。

{{1}}