- 浏览: 2075729 次
- 性别:
- 来自: NYC
文章分类
- 全部博客 (628)
- Linux (53)
- RubyOnRails (294)
- HTML (8)
- 手册指南 (5)
- Mysql (14)
- PHP (3)
- Rails 汇总 (13)
- 读书 (22)
- plugin 插件介绍与应用 (12)
- Flex (2)
- Ruby技巧 (7)
- Gem包介绍 (1)
- javascript Jquery ext prototype (21)
- IT生活 (6)
- 小工具 (4)
- PHP 部署 drupal (1)
- javascript Jquery sort plugin 插件 (2)
- iphone siri ios (1)
- Ruby On Rails (106)
- 编程概念 (1)
- Unit Test (4)
- Ruby 1.9 (24)
- rake (1)
- Postgresql (6)
- ruby (5)
- respond_to? (1)
- method_missing (1)
- git (8)
- Rspec (1)
- ios (1)
- jquery (1)
- Sinatra (1)
最新评论
-
dadadada2x:
user模型里加上 protected def email ...
流行的权限管理 gem devise的定制 -
Sev7en_jun:
shrekting 写道var pattern = /^(0| ...
强悍的ip格式 正则表达式验证 -
jiasanshou:
好文章!!!
RPM包rpmbuild SPEC文件深度说明 -
寻得乐中乐:
link_to其实就是个a标签,使用css控制,添加一个参数: ...
Rails在link_to中加参数 -
aiafei0001:
完全看不懂,不知所然.能表达清楚一点?
"$ is not defined" 的问题怎么办
由于rails2已经把自动完成(auto-completion)移出去了,2.0后的自动完成可以用下面的插件来完成。
atuo_complete插件提供输入提示功能,我们通过一个example来示范,用户在输入日志的tag时,有自动输入提供。
1. 创建测试工程:
2. 生成blog和tag模型:
3. 映射一对多关系:
4. 添加测试数据:
5. 生成数据表:
6. 安装auto_complete插件:
7. 为controller添加auto_complete_for方法:
8. 在routes中添加映射关系:
9. 在view中添加需要提示功能的输入框:
10. 确保页面已经包含prototype库:
11. 测试:
script/server
在浏览器中输入http://localhost:3000/blogs/new
在Tags输入框中输入r,系统将提示ruby和rails
12. 如果你想输入多个tag都有提示的话,比如用空格分开:
13. 如果你想在光标进入输入框就提示的话,可以这样做:
以上测试环境是:Ruby 1.8.6 + Rails 2.0.2,点击这里下载源代码
Tips:
#Controller中可带参数有conditions, limit, order
#View中可待参数有两种:
这里还有一版不错的英文的用法介绍
示例一点:
atuo_complete插件提供输入提示功能,我们通过一个example来示范,用户在输入日志的tag时,有自动输入提供。
1. 创建测试工程:
$rails test_auto_complete $cd test_auto_complete
2. 生成blog和tag模型:
$script/generate scaffold blog title:string content:string $script/generate model tag name:string blog_id:integer
3. 映射一对多关系:
#app/models/blog.rb has_many :tags #app/models/tag.rb belongs_to :blog
4. 添加测试数据:
#db/migrate/001_create_blogs.rb Blog.create(:title => "test", :content => "test") #db/migrate/002_create_tags.rb blog = blog.find(:first) Tag.create(:name => "ruby", :blog_id => blog) Tag.create(:name => "rails", :blog_id => blog) Tag.create(:name => "agile", :blog_id => blog) Tag.create(:name => "web", :blog_id => blog)
5. 生成数据表:
$rake db:migrate
6. 安装auto_complete插件:
$script/plugin install http://svn.rubyonrails.org/rails/plugins/auto_complete
7. 为controller添加auto_complete_for方法:
#app/controllers/blogs_controller.rb auto_complete_for :tag, :name
8. 在routes中添加映射关系:
#config/routes.rb map.resources :blogs, :collection => { :auto_complete_for_tag_name => :get }
9. 在view中添加需要提示功能的输入框:
#app/views/blogs/new.html.erb Tags <%= text_field_with_auto_complete :tag, :name, {}, {:method => :get} %>
10. 确保页面已经包含prototype库:
#app/views/layout/blogs.html.erb <%= rubyscript_include_tag :defaults %>
11. 测试:
script/server
在浏览器中输入http://localhost:3000/blogs/new
在Tags输入框中输入r,系统将提示ruby和rails
12. 如果你想输入多个tag都有提示的话,比如用空格分开:
#app/views/blogs/new.html.erb <%= text_field_with_auto_comlete :tag, :name, {}, {:method => :get, :token => ' '} %>在Tags输入框中输入ruby on r,系统将提示ruby和rails
13. 如果你想在光标进入输入框就提示的话,可以这样做:
#app/views/blogs/new.html.erb <%= text_field_with_auto_complete :tag, :name, {:onfocus => "tag_name_auto_completer.activate()"}, {:method => :get, :token => ' '} %>在Tags输入框为空时,点击该输入框,系统将提示agile, rails, ruby, web
以上测试环境是:Ruby 1.8.6 + Rails 2.0.2,点击这里下载源代码
Tips:
#Controller中可带参数有conditions, limit, order
class BlogController < ApplicationController auto_complete_for :tag, :name, :limit => 15, :order => 'created_at DESC' end
#View中可待参数有两种:
#一是tag_options,与text_field的options相同 #二是completion_options,与prototype库的Ajax.AutoCompleter的options相同 <%= text_field_with_auto_complete :tag, :name, {:size => 10}, {:tokens => ' '} %>
这里还有一版不错的英文的用法介绍
示例一点:
def auto_complete_for_doctor_organization re = Regexp.new("^#{params[:doctor][:organization]}", "i") find_options = { :order => "name ASC" } @organizations = Organization.find(:all, find_options).collect(&:name).select { |org| org.match re } render :inline => "<%= content_tag(:ul, @organizations.map { |org| content_tag(:li, h(org)) }) %>" end map.auto_complete ':controller/:action', :requirements => { :action => /auto_complete_for_\S+/ }, :conditions => { :method => :get }
评论
3 楼
angjunwen
2011-10-13
我想实现的是在blog 中保存的是 tag 对象的 id ,不是tag 的 name ,不知有什么解决方法 ?
2 楼
angjunwen
2011-10-13
你的模型定义是不是有问题?
class Tag < ActiveRecord::Base
belongs_to :blog
end
class Blog < ActiveRecord::Base
has_many :tags
end
是不是应该是:
class Tag < ActiveRecord::Base
has_many :blog
end
class Blog < ActiveRecord::Base
belongs_to :tags
end
还有blog表单提交后,blog 中tag对象没有保存进去该怎么处理?
class Tag < ActiveRecord::Base
belongs_to :blog
end
class Blog < ActiveRecord::Base
has_many :tags
end
是不是应该是:
class Tag < ActiveRecord::Base
has_many :blog
end
class Blog < ActiveRecord::Base
belongs_to :tags
end
还有blog表单提交后,blog 中tag对象没有保存进去该怎么处理?
1 楼
fl1429
2009-03-31
不错...学习了!
发表评论
-
Destroying a Postgres DB on Heroku
2013-04-24 10:58 935heroku pg:reset DATABASE -
VIM ctags setup ack
2012-04-17 22:13 3259reference ctags --extra=+f --e ... -
alias_method_chain方法在3.1以后的替代使用方式
2012-02-04 02:14 3295alias_method_chain() 是rails里的一个 ... -
一些快速解决的问题
2012-01-19 12:35 1472问题如下: 引用Could not open library ... -
API service 安全问题
2011-12-04 08:47 1386这是一个长期关注的课题 rest api Service的 ... -
Module方法调用好不好
2011-11-20 01:58 1349以前说,用module给class加singleton方法,和 ... -
一个ajax和rails交互的例子
2011-11-19 01:53 1908首先,这里用了一个,query信息解析的包,如下 https: ... -
Rails 返回hash给javascript
2011-11-19 01:43 2277这是一个特别的,不太正统的需求, 因为,大部分时候,ajax的 ... -
关于Rubymine
2011-11-18 23:21 2267开个帖子收集有关使用上的问题 前一段时间,看到半价就买了。想 ... -
ruby中和javascript中,动态方法的创建
2011-11-18 21:01 1241class Klass def hello(*args) ... -
textmate快捷键 汇总
2011-11-16 07:20 8147TextMate 列编辑模式 按住 Alt 键,用鼠标选择要 ... -
Ruby面试系列六,面试继续面试
2011-11-15 05:55 2025刚才受到打击了,充分报漏了自己基础不扎实,不肯向虎炮等兄弟学习 ... -
说说sharding
2011-11-13 00:53 1492这个东西一面试就有人 ... -
rails面试碎碎念
2011-11-12 23:51 1946面试继续面试 又有问ru ... -
最通常的git push reject 和non-fast forward是因为
2011-11-12 23:29 17216git push To git@github.com:use ... -
Rails 自身的many to many关系 self has_many
2011-11-12 01:43 2737简单点的 #注意外键在person上people: id ... -
Rails 3下的 in place editor edit in place
2011-11-12 01:20 946第一个版本 http://code.google.com/p ... -
Heroku 的诡异问题集合
2011-11-11 07:22 1697开个Post记录,在用heroku过程中的一些诡异问题和要注意 ... -
SCSS 和 SASS 和 HAML 和CoffeeScript
2011-11-07 07:52 12960Asset Pipeline 提供了内建 ... -
Invalid gemspec because of the date format in specification
2011-11-07 02:14 2122又是这个date format的错误。 上次出错忘了,记录下 ...
相关推荐
emacs 的自动补全插件可以在写代码时自动补全
neocomplcache - Ultimate auto completion system for Vim. snipMate - Plugin for using TextMate-style snippets in Vim. supertab - Perform all your vim insert mode completions with Tab. delimitMate - ...
Auto-GPT是一款基于人工智能技术的开源软件,其主要功能是实现自动化的对话生成和文本 completion。这个项目可能是对OpenAI的GPT系列模型的一种扩展或优化,旨在提供更高效、更便捷的使用体验。让我们深入了解一下这...
**Auto Field Completion-crx插件**是一款专为提高在线表单填写效率而设计的浏览器扩展程序,尤其在预订房间等需要填写大量个人信息的场景中,它能极大地简化用户的工作流程,提升用户体验。这款插件主要面向英语...
其中,代码提示(Code Completion)功能可以帮助开发者快速完成代码编写,减少输入错误,提高编码速度。本文将详细介绍MyEclipse与Eclipse这两个集成开发环境(IDE)中的代码提示功能配置方法。 #### 一、MyEclipse...
- 使用Spring Boot Maven插件(Using the Spring Boot Maven plugin):介绍如何使用该插件。 - Gradle: - 指导如何在Gradle项目中使用Spring Boot。 - Ant: - 提供使用Ant构建工具的信息。 - 启动器...
#### 知识点一:ctags插件介绍 ctags是一款功能强大的代码标签生成工具,主要用于为源代码文件创建索引标签,以便用户能够快速地导航至特定的函数、变量或类定义等。在开发过程中,特别是对于大型项目而言,使用...
自动补全(Auto-Completion)是现代集成开发环境(IDE)中的一个重要特性,它能够帮助程序员快速输入代码,提高编码效率,减少错误。在STM32CubeIDE中,自动补全功能可以为STM32 HAL库、LL库以及CMSIS库的函数、宏...
- **VIM插件**: 探索并安装一些流行的VIM插件,如Syntax Highlighting、Auto Completion等,以进一步提高编辑效率。 - **自定义配置**: 编辑`.vimrc`文件来自定义VIM的行为,如更改主题、设置自动缩进等。 - **...
【描述】:myeclipse快捷键是提高Java开发效率的重要工具,本文将介绍一些常用的和不常用的快捷键,以及如何优化myeclipse的性能。 【知识点详解】: 1. **优化myeclipse性能**: - **取消自动validation**:...
2. **Auto-completion**:像YouCompleteMe或Neocomplete这样的插件可以提供智能代码补全,节省输入时间。 3. **Code Navigation**:像CtrlP这样的插件可以帮助快速跳转到函数定义或者文件中的特定位置。 4. **Error ...
- `Window > Preferences > Java > Editor > Completion Proposals > Background color`: 设置代码补全建议的背景颜色。 #### 四、其他配置要点 - **手动验证功能**: - `Windows > Preferences > MyEclipse > ...
- **代码补全与提示:** 安装Auto-Completion插件提升编码效率。 - **调试支持:** Emacs支持多种语言的调试工具,如GUD (Generic Un Debugger)。 - **代码审查与重构:** 使用Refactor Emacs进行代码重构操作。 ##...
Emacs Lisp是一种强大的编程语言,用于编写Emacs的插件和配置,使得lazy-el可以根据个人需求进行定制。 5. **项目管理Emacs Lisp**:lazy-el不仅仅是对Emacs的增强,也是对Emacs Lisp生态的贡献。它展示了如何利用...
2. **代码提示与补全(Code Hinting and Auto-Completion)**:Brackets原生支持HTML、CSS和JavaScript的基本代码补全,但通过安装特定插件,如“Quick Docs JS”(对应quickdocsjs.rar),开发者可以获得更详尽的...
3. **禁用代码完成**:在“Content Assist”页面中,取消勾选“Enable auto activation”选项。 4. **重启MyEclipse**:重启MyEclipse后,尝试再次启动Tomcat,观察是否还会出现同样的错误提示。 ### 总结 遇到...
- **Auto Importing(自动导入)**:配置自动导入包的策略。 - **Appearance(外观)**:设置编辑器的视觉元素。 - **Code Completion(代码完成)**:设置代码补全功能。 - **Code Folding(代码折叠)**:设置...
let g:java_complete_auto_popup = 1 ``` 无论你选择哪个插件,都需要确保系统中安装了 Java 开发工具(JDK),因为这些插件依赖于 `javap` 命令来获取类和方法信息。同时,你还需要安装 Ctags,这是一个通用的...