参数传递到控制器 - 自动完成

有应该显示产品/经理的列表一个Rails应用程序。 搜索高,低我有反应,我发现我需要一个paremeter传递到我的控制器包含列表之后。

def manager_list list=User.all.map{|i|i.full_name} arr= [].concat(list.sort{|a,b| a[0]<=>b[0]}).to_json render :json =>arr end

JavaScript的

$.ajax({ url: "/managerlist", dataType: "json", data: { style: "full", maxRows: 12, term: request.term }, success: function(data) { var results = []; $.each(data, function(i, item) { var itemToAdd = { value: item, label: item }; results.push(itemToAdd); }); return response(results);

我的红宝石和JavaScript的知识不是最高的。 不过我知道下面的列表= User.all.map。 正在收集所有用户FULL_NAME和连接它。 我一直在试图对小时搞清楚如何准确传递VAR“术语”作为参数传入我的用户控制器。 所以,当我运行Rails应用程序和搜索特定经理或产品它会显示一个记录葛,而不是整个列表。

--------------解决方案-------------

因为,你想实现自动完成功能,我相信你搜索开始给定模式的名字。

该控制器将是这个样子:

def manager_list
matching_users = User.where(['full_name like ?', "#{params[:term]}%"])
matching_names = [].concat(matching_users.map(&:full_name).sort{|a,b| a[0]<=> b[0]}).to_json
render :json => matching_names
end

此外, term: request.term听起来不是我的权利。 我不知道,你在哪里取从UI的搜索词。 请确认。

请问您manager_list一个控制器里面的方法?

这里是你的控制器可能是什么样子:

class UserController < ActionController::Base

def manager_list
var term = params[:term]
... // work with your parameter
end
end

如果你只从这个1条结果...我会重新命名它,而不是getManager,因为你不会得到一个列表。

如果长期在你的用户模型一个领域,是一个动态的取景器可以调用! 是这样的:

User.find_by_term!(term)

希望我的回答您的问题!

商祺

分类:Ruby on Rails的 时间:2012-02-22 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.279 (s). 10 q(s)