Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基于第一个字符的Ruby下拉选择_Ruby_Ruby On Rails 4 - Fatal编程技术网

基于第一个字符的Ruby下拉选择

基于第一个字符的Ruby下拉选择,ruby,ruby-on-rails-4,Ruby,Ruby On Rails 4,我有一个汽车品牌的下拉列表,我希望我的用户开始选择,因为他们键入。键入的第一个字符应在make中找到第一个字符。问题是它在make中的任何地方搜索字符,而不是像我的用户所希望的那样从第一个字符开始。例如如果你输入一个“r”,你会得到:阿尔法罗密欧,阿斯顿马丁,雪佛兰,克莱斯勒等。。。在你得到雷诺之前。 我从数据库中创建我的列表。我的haml看起来像这样: .field-row = render partial:'/makes/make_select', locals:{id:'make_

我有一个汽车品牌的下拉列表,我希望我的用户开始选择,因为他们键入。键入的第一个字符应在make中找到第一个字符。问题是它在make中的任何地方搜索字符,而不是像我的用户所希望的那样从第一个字符开始。例如如果你输入一个“r”,你会得到:阿尔法罗密欧,阿斯顿马丁,雪佛兰,克莱斯勒等。。。在你得到雷诺之前。 我从数据库中创建我的列表。我的haml看起来像这样:

 .field-row
   = render partial:'/makes/make_select', locals:{id:'make_id'}
这就叫它_make_select.html.haml

 = collection_select :vehicle, id, Make.all.order(:name), :id, :name, {prompt:true}, {title:'Select Make', class:'make-select', 'data-allow-empty' => 'no'}
在Ruby上,我似乎找不到任何文档可以向我显示collection\u select的有效选项。也许有一个选项允许这样做? 我已经读到,我可能需要使用jQuery来实现这一点。我只是想弄清楚,在haml中,是否有一个简单的选项更容易实现。 如果您还有什么想看的,请告诉我。
谢谢

您可以将逻辑添加到控制器中,并使用SQL查询进行检查,这取决于您使用的数据库

@makes = Make.where('name LIKE ?', "#{params[character]}%")
查看关于模式匹配的MySql文档

您不应该在视图中添加模型查询,而应该添加它


在上述情况下,我建议您使用功能强大且已经具备所需功能的控制器。

当我将其添加到控制器中时,似乎什么都没有发生。我是Ruby新手,所以我很好奇,当我开始输入字符时,它是否应该击中控制器?不,当您提交表单并返回结果时,参数将被发送。提交表单时,查询是否有效?一旦得到正确的结果,如果您想要一些自动完成功能,那么您需要实现一些javascript来在填写表单时获取按键事件。rails有很多jquery自动完成的宝石,例如: