我需要一些关于如何在我的Rails应用程序中实现jquery-ui自动完成的帮助.
我想将自动填充添加到用户可以输入客户名称的文本字段中.由于可能有数百个客户,我需要从表中"远程"拉出建议的自动完成值(至少这是我所理解的).
我无法理解的要点是如何为自动完成文本框提供建议值.我已经阅读了jquery-ui文档,但在这个问题上我似乎有点密集.
所以我真正追求的是一个如何在Rails应用程序中使用它的示例,不一定是javascript如何构建的完整描述(这就是jquery-ui团队为我做的事情=)).
例如,如何为自动完成准备数据,以及如何将自动完成功能附加到文本框.
我正在创建一个具有一些复杂底层关联的Web应用程序.为了解决我遇到的几个问题,我创建了一个UNION View.可能有很多其他方法可以解决.
但我现在正在考虑我的设计的效率,我想知道每次查询时是否新创建了一个VIEW,或者它是否只创建一次,并保持更新.
详细说明,如果我有table_a(100条记录)和table_b(100条记录)并制作UNION视图,那么我创建了一个包含200条记录的视图.
每次我对View进行选择时,是否会发生这整个过程?
同样,显然每次更新基础表记录时视图都会更新,但是视图是否更新了这一条记录,还是从头开始重新创建整个视图?
戴尔
我是javascript的新手,我可能咬的比我可以咀嚼的多,但我试图在我的Rails网站上运行jQuery autcomplete小部件.
我有一个名为"链接"的页面,我希望能够将一个人分配给一个链接.使用自动填充我应该能够有一个文本框,其中包含自动填充建议的人名列表,选中后,人名仍保留在文本框中.但是当提交表单时,我不希望随表单一起发送的人名,我希望随表单发送的人员ID.
所以问题是如何选择人名,保留在文本框中,但一旦提交,则提交人员ID.
在Rails中,这是我从Person控制器提供JSON数据的方式:
def index
if params[:term]
@people = Person.find(:all,:conditions => ['given_name LIKE ?', "#{params[:term]}%"], :limit => 5)
else
@people = Person.all
end
respond_to do |format|
format.html # index.html.erb
format.json { render :json => @people.to_json(:only => [:id, :given_name]) }
end
end
Run Code Online (Sandbox Code Playgroud)
以上输出以下JSON文本:
[{"person":{"id":1,"given_name":"dale"}},{"person":{"id":2,"given_name":"sally"}},{"person":{"id":3,"given_name":"joe"}}]
Run Code Online (Sandbox Code Playgroud)
使用jQuery自动完成插件,如何在建议的匹配中显示'given_name',选择后在文本框中保留'given_name',但在提交表单时发送'id'值.
我想我需要在javascript中指定要标记的内容以及要发送的值.因为我刚刚掌握了javascript,如果你能解释你的答案是如何工作的,那将是值得赞赏的.谢谢.
似乎有许多方法可以处理多个外键关联.我接触过的每一种方式都有它们的缺点,而且我是Rails的新手,我确信其他人遇到了类似的情况,我可能正在研究很久以前解决的问题.
我的问题是:
什么是处理多索引键关联的有效方法,同时仍保留所有其他Rails sql修饰符(例如:include等)?
我的情况是:
我有一个表关联如下(简化),用于通过链接将人们连接到其他人:
People
+----+-----------+
| id | name |
+----+-----------+
| 1 | Joe |
+----+-----------+
| 2 | Sally |
+----+-----------+
| 3 | Bob |
+----+-----------+
Links
+----+-----------+---------+
| id | origin_id | rcvd_id |
+----+-----------+---------+
| 1 | 2 | 1 |
+----+-----------+---------+
| 2 | 1 | 3 |
+----+-----------+---------+
| 3 | 3 | 2 |
+----+-----------+---------+
Run Code Online (Sandbox Code Playgroud)
从上面的Links表的第1行,可以看到Person(Sally = 2)链接到另一个Person(Joe = 1).
如果我的外键是"origin_id",我很容易找到所有的人员链接.但这只会显示人们发起链接.在我的场景中,我需要查看所有链接,无论它们是由人发起还是接收.例如,如果我要求所有Sally的链接(Sally = 2),我想要的结果是:
Links
+----+-----------+---------+
| id | origin_id …Run Code Online (Sandbox Code Playgroud) 我正在使用带有Rails 3.0.9的best_in_place gem.好像我一切正常.我按照安装说明操作,我可以点击一个项目,编辑它并用ajax保存在一个地方.
但是,在测试验证功能但放入虚假数据时,不会显示错误消息.
我不确定这是否应该通过javascript神奇地完成,或者我应该提供某种div标签或可以显示错误消息的东西.
在firebug中检查这个,我得到了正确的json响应.就我而言,我可以看到
["债务长度无效"]
但这不会在任何地方呈现.
我还需要在视图中添加其他任何内容来呈现验证错误吗?它应该通过purr.js显示.除了将javascript文件放在我的公共目录中之外,我还需要做什么,在application.js中启动best_in_place并放入
<p>
<b>Debts:</b>
<%= best_in_place @prospect, :debts, :type => :input %>
</p>
Run Code Online (Sandbox Code Playgroud)
在视图中?
我在Rails 3.1中使用Ransack Gem.一切都按预期工作.但是,我有一个搜索表单,它将使用我遇到问题的Soundex列查找某个人.
在我的表单中,我有一个"given_name_soundex_cont"字段,用户将输入名称"Joe".我的控制器将"joe"转换为soundex代码,然后Ransack在"given_name_soundex"列中查找匹配项.
返回所有匹配的记录并且看起来很好,除了用户输入单词"joe"的字段现在显示soundex值(当然因为我更改了参数).
所以我想我可以添加一个"given_name_cont"字段并隐藏"given_name_soundex_cont"字段,但现在Ransack想要在查询中包含"given_name_cont",这是我不想要的.
有没有人知道如何在没有Ransack实际评估它们的情况下在Ransack搜索表单中包含字段.这样我就可以指定哪些字段不被评估,哪些不被评估.
如果它有帮助这就是我在我的控制器中所拥有的:
def index
if !params[:q].blank? # nil.blank? and [].blank? are true
search_params = params[:q]
search_params[:given_name_soundex_cont] = convert_to_soundex(search_params[:given_name_soundex_cont])
@q = Person.search(search_params)
@results = @q.result.limit(50)
else
@q = Person.search(params[:q])
@results = []
end
end
private
def convert_to_soundex(text)
Text::Soundex.soundex(text.to_s)
end
Run Code Online (Sandbox Code Playgroud)
在我看来:
<%= search_form_for @q do |f| %>
<label>Given Name:</label>
<%= f.text_field :given_name_soundex_cont %>
<%= f.submit %>
<% end %>
Run Code Online (Sandbox Code Playgroud) 不幸的是,当我在工作时,我正在开发一个无法连接到互联网的网络.所以我一直在从rubygems.org下载我需要的每个gem,然后通过flashdisk将它们复制到内部网络.这工作正常,除非我需要一个具有其他gem依赖关系的gem我必须单独下载这些并且它是缓慢而乏味的.
有没有办法下载一个宝石及其所有依赖的宝石进行离线安装?我在互联网上有一台计算机,我可以安装宝石,我希望我可以下载我需要的宝石,它会自动安装依赖项,然后我可以复制到内部网络.但是gem install一旦安装完毕,似乎不会留下.gem文件.
autocomplete ×2
gem ×2
jquery-ui ×2
activerecord ×1
indexing ×1
json ×1
meta-search ×1
postgresql ×1
raphael ×1
search ×1
tableview ×1
union ×1