- 浏览: 227190 次
- 性别:
- 来自: 上海
最新评论
-
Mybeautiful:
碰到同样问题,谢谢分享。
Android shape中的padding无效 -
finger:
还有 Open3.capture 系列 和 Open3.pop ...
读《The Ruby Way》之运行外部程序 -
qianguming:
在eclipse中怎么配置的啊
Cannot run program jad -
luckyfenfen:
解决了我的问题,谢谢啦~
MySQL Plugin 'InnoDB' init function returned error. -
shasha_god:
请问一下,yum install zlib-devel
yu ...
在CentOS上安装git
如果你是用过Google的搜索条,就会知道,它会根据你的输入实时的列出相关的搜索项目。让我们在自己的 Rails 网站里也添加这一功能。
1.
新建application 创建一个 controller images,它包含三个 action。再创建一个 model image,要有个字段为 filename。
ruby 代码
- rails searchdemo
- cd searchdemo
- ruby script/generate controller images index suggest you_choose
- ruby script/generate model image
2. search.xml
在 public 目录下创建 search.xml。
URL-TO-AN-ICON-FILE要换成你自己网站icon文件的URL。
YOUR-ADDRESS换成你自己的网址。
xml 代码
- xml version = "1.0" encoding = "UTF-8" ?>
- < OpenSearchDescription xmlns = "http://a9.com/-/spec/opensearch/1.1/"
- xmlns:moz = "http://www.mozilla.org/2006/browser/search/" >
- < ShortName > Image Search <!---->ShortName >
- < Description > Image Search <!---->Description >
- < InputEncoding > UTF-8 <!---->InputEncoding >
- < Image height = "16" width = "16" type = "image/x-icon" > URL-TO-AN-ICON-FILE <!---->Image >
- < Url type = "application/x-suggestions+json" template = "http://YOUR-ADDRESS/images/suggest?filename={searchTerms}" />
- < Url type = "text/html" method = "GET" template = "http://YOUR-ADDRESS/images/you_choose/{searchTerms}" />
- <!---->OpenSearchDescription >
3.
Controllerrhtml 的内用就省略了。
ruby 代码
- def suggest
- headers["Content-Type" ] = "application/x-suggestions+json"
- codes = Image.find(:all , :conditions =>[ "filename LIKE ?" ,params[ :filename ]+ "%" ], :limit =>10, :group => "filename" , :order => "filename" )
- @res = codes.map{ |c | c.filename }
- render :text => [params[ :filename ], @res ].to_json
- end
- def you_choose
- @image_pages , @images = paginate :images , :per_page => 20,
- :order => 'filename',
- :conditions => [ "filename LIKE ?" ,params[ :filename ]+ "%" ]
- end
4. Settings
layouts/images.rhtml 文件中,追加下面的 link。
xml 代码
- < link rel = "search" type = "application/opensearchdescription+xml" title = "Search a Image" href = "http://YOUR-ADDRESS/search.xml" />
routes.rb 里,追加下边的映射。
ruby 代码
- map.connect ' :controller / :action '
5. 进阶
想上边那样设定的话,已经为网站追加了OpenSearch功能。可是当测试网址和实际网址不同的时候,xml 文件里的静态URL就需要修改。让我们用 url_for 将它改进。
追加一个 action opensearch。
ruby 代码
- def opensearch
- headers["Content-Type" ] = "application/opensearchdescription+xml; charset=utf-8"
- render :layout => false
- end
opensearch.rhtml (当然,search.xml要删除)
xml 代码
- < OpenSearchDescription xmlns = "http://a9.com/-/spec/opensearch/1.1/"
- xmlns:moz = "http://www.mozilla.org/2006/browser/search/" >
- < ShortName > Image Search <!---->ShortName >
- < Description > Image Search <!---->Description >
- < InputEncoding > UTF-8 <!---->InputEncoding >
- < Image height = "16" width = "16" type = "image/x-icon" > < %= @request.protocol + @request.host_with_port % > /images/image.ico <!---->Image >
- < Url type = "text/html" method = "get" template = "<%= url_for :only_path => false, :controller => 'images', :action => 'you_choose' %>" >
- < Param name = "filename" value = "{searchTerms}" />
- <!---->Url >
- < moz:SearchForm > < %= url_for :only_path = > false, :action = > 'list', :controller = > 'images' % > <!---->moz:SearchForm >
- < Url type = "application/x-suggestions+json" template = "<%= url_for :only_path => false, :action => 'suggest', :controller => 'images' %>?filename={searchTerms}" />
- <!---->OpenSearchDescription >
layouts/images.rhtml 文件中的 link 也要修改。
xml 代码
- < link rel = "search" type = "application/opensearchdescription+xml" title = "Search a Image" href = "<%= url_for :only_path => false, :controller => 'images', :action => 'opensearch' %>" >
评论
4 楼
seadog
2007-04-10
先藏下看看
3 楼
eastviking
2007-03-21
不用吧,这么简单的东西,人家提示个思路,下面的自己搞一下就好了
多动手才能学的精
多动手才能学的精
2 楼
RobinWu
2007-03-21
同意楼上的
1 楼
Cecily
2007-03-13
先藏下看看 不妨把例子打个包一起放上来
发表评论
-
ActiveRecord::Base.update 的 alias_method_chain 顺序变化
2010-07-19 11:01 1316alias_method_chain有非常强大的功能,使得我们 ... -
Ruby:按照插入的顺序取出要素
2010-07-12 00:37 1096利用pseudohash库的PseudoHash类,可以实现按 ... -
Ruby时区转换
2010-07-11 22:27 2543要将MySQL数据库中的数据,由日本服务器转移到美国服务器。日 ... -
项目中使用的Rails版本升级 2.2.2=>2.3.8
2010-06-25 15:40 1596项目中使用的Rails版本是2.2.2,想升级到到最新的2.3 ... -
搭建一个自己的Ruby博客系统(toto+heroku+免费域名)
2010-06-21 02:53 8500要有自己的博客系统,首先要有自己的空间 Heroku是著名的R ... -
用Ruby播放音乐
2010-06-19 03:53 1827《The Ruby Way》第14章,记述了一段代码可以调用W ... -
读《The Ruby Way》之运行外部程序
2010-06-17 02:32 1736西班牙输了,这次世界杯强队的表现真是没话可说了。 Ruby里 ... -
读《The Ruby Way》之线程
2010-06-14 19:08 1161经常提及线程,但是用线程编的程序真的是不多。仔细的学习一下吧。 ... -
读《The Ruby Way》之数值计算
2010-06-13 23:18 927世界杯至今为止的比赛都看了,不过很多比赛都是在三心二意的看,凌 ... -
读《The Ruby Way》之正则表达式
2010-06-12 22:19 1000世界杯开幕了,看了三场球。南非1-1墨西哥,法国0-0乌拉圭, ... -
读《The Ruby Way》之格式化字符串
2010-06-12 00:06 1791一边看世界杯,一边看书。 这一章介绍了很多的字符串处理函数 ... -
读《The Ruby Way》
2010-06-10 21:21 1017从06年10月开始接触Ruby,眨眼间已经过了3年半了。虽然用 ... -
试用GtkSimpleLayout制作UI
2010-06-10 01:26 1318rubynroll的《300行代码你 ... -
Ruby GUI编程
2010-06-08 19:38 3213Ruby比较成熟的GUI绑定库 ... -
Rails国际化(i18n)
2010-06-07 21:15 5524很早就知道国际化,就知道i18n,却不知道是什么原因。原来in ... -
更新rails的时候发生错误,Invalid Gem format
2009-02-02 17:18 2197今天把rails的版本升级到2.2.2的时候,发生了以下错误。 ... -
让Rails的数据库连接更快--把Ruby/MySQL升级到2.8
2008-12-12 17:46 1730装了C版本的MySQL数据库适配器以后,Rails工程的性能确 ... -
把Rails2.1的默认数据库由sqlite3改回mysql
2008-12-12 16:23 1516装了Rails2.1.2,新生成工程的时候,默认数据库居然是s ... -
TypeError: iterable argument required
2008-11-27 21:25 3626执行ruby script/console,可是报错 ruby ... -
cache_fu的关联补丁(belongs_to, has_one)
2008-09-08 23:15 1146为了缓解数据库服务器 ...
相关推荐
MetaTags:使您的Rails应用程序变得SEO友好的瑰宝 Ruby on Rails应用程序的搜索引擎优化(SEO)插件。 Ruby on Rails MetaTags master分支完全支持Ruby on Rails 5.1+,并针对所有主要的Rails发行版(最高6.1)...
例如,你可以在模型中添加`geocoded_by`和`acts_as_mappable`方法来启用这个功能。 总的来说,Ruby-Geocoder是Ruby开发者在构建地理位置相关应用时的一个强大工具,它提供了全面的功能和灵活的配置选项,使得处理...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
Java数组倒置 简单 Java图片加水印,支持旋转和透明度设置 摘要:Java源码,文件操作,图片水印 util实现Java图片水印添加功能,有添加图片水印和文字水印,可以设置水印位置,透明度、设置对线段锯齿状边缘处理、水印...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
- 创建了一个名为`unic`的别名,用于启动特定配置下的`unicorn_rails`服务。 4. **脚本编写**: - 示例:`10:53:56~/bin/vi repo-update` - 编写一个Shell脚本来批量更新多个仓库。 - 脚本内容: ```bash #...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
使用该标记库,利用 Google 为你的网站提供网站查询,并且可以直接在你的网页里面显示搜查的结果。 github-java-api github-java-api 是 Github 网站 API 的 Java 语言版本。 java缓存工具 SimpleCache ...
每个存储库都有有关设置和添加新功能的更多详细文档,有关该存储库的信息,请参阅以下指南: 贡献者 许多出色的人为该项目做出了贡献,您可以在此处查看所有内容: : 发展历程 源代码托管在。 在上报告问题/功能...