- 浏览: 1328655 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (732)
- Java_about (146)
- Spring_Hibernate_Struts_OpenSource (27)
- linux_unix (62)
- life_sth (22)
- js_css_html_xml_nodejs (69)
- design_pattens (1)
- Perl (8)
- php_ecshop (4)
- DB_Mysql_Oracle_Informix_SqlServer (43)
- JSTL (8)
- Testing_自动化测试 (42)
- DB_ID_UUID (4)
- SEM_SEO (1)
- english_study_improvement (4)
- SVN_Git (9)
- WebService_SOA_CloudComputing (3)
- E-Commerce (1)
- Lucene_Solr (7)
- others (2)
- Regex (2)
- tomcat_jetty (8)
- zeroc-ice (1)
- java_excel (5)
- ant_maven_gradle (5)
- Unity_VR_AR_C# (2)
- jmeter (1)
- XPath_dom4j (1)
- Ruby_and_Rails (68)
- write_a_rails (17)
- manage_and_team (1)
- getting_real (1)
- ubuntu (20)
- git_and_git_flow (7)
- TODO (1)
- PM_design (2)
- Python_and_Django (8)
- NoSql_mongo_redis (24)
- C/C++ (3)
- vi_vim_gvim (0)
- c#_.Net_windows编程_dll (10)
- Php_and_Yii (9)
- Android_IOS (31)
- Mysql (5)
- sa_运维_network_硬件 (37)
- lua (2)
- c_cpp_VisualStudio (21)
- 硬件-RM-Arduino (6)
最新评论
-
shenkun58:
...
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
liaojia1:
正解,感谢
NoClassDefFoundError: Could not initialize springframework.BeanCreationException -
flingfox63:
谢谢分享,电脑上有IPV6,导致了Guard启动不了……
ruby错误解决: Address family not supported by protocol - connect(2) -
c39274936:
s = "hello_world_ruby" ...
驼峰格式和下划线格式转换_translation between camel and snake format -
yfj300:
学习了学习了学习了学习了
硬盘基本知识(磁道、扇区、柱面、磁头数、簇、MBR、DBR)
简而言之:拼sql语句的方法和细节。
public class method find(*args) in ActiveRecord::Base::self in active_record/base.rb
另外可以看看这个帖子http://www.iteye.com/topic/135499的回复中提到的插件:criteria_query,看着好用:
http://agilewebdevelopment.com/plugins/criteria_query
#joins
:joins -
#1 Either an SQL fragment for additional joins like "LEFT JOIN comments ON comments.post_id = id" (rarely needed),
这样的话,joins后面的string字符串会完全跟在select * from model_xxx #{joins 字符串} where ... ...
这样的话,如果写别名的话,根据拼sql规则,需要下面这样写,在joins处先写别名:
Deal.all(:limit => 1, :joins=>"as d join areas as s on d.city_id = s.id ", :select => "d.*, s.* ", :conditions => ["s.id < 10 and d.id < 100"])
#2 named associations in the same form used for the :include option, which will perform an INNER JOIN on the associated table(s),
等价于include的用法,也就是说,这样的关联用法,必须是在model中声明了的关联,如belongs_to xxx || include yyy
#3 or an array containing a mixture of both strings and named associations.
等价于#2,只不过有多个关联时,用数组就可以了
#4 注意=>If the value is a string, then the records will be returned read-only since they will have attributes that do not correspond to the table's columns. Pass :readonly => false to override.
#5 和include的区别
看看同样的表结构下的例子,更详细的还是要去看源码或实验:
Deal.all(:limit => 1, :joins=>:concern_deal, :conditions => ["deal_id < 10 and concern_deals.user_id < 1000"])
SELECT `deals`.* FROM `deals` INNER JOIN `concern_deals` ON concern_deals.deal_id = deals.id WHERE (deal_id < 10 and concern_deals.user_id < 1000) LIMIT 1
Deal.all(:limit => 1, :include=>:concern_deal, :conditions => ["deal_id < 10 and concern_deals.user_id < 1000"])
SELECT DISTINCT `deals`.id FROM `deals` LEFT OUTER JOIN `concern_deals` ON concern_deals.deal_id = deals.id WHERE (deal_id < 10 and concern_deals.user_id < 1000) LIMIT 1
#from
:from - By default, this is the table name of the class, but can be changed to an alternate table name (or even the name of a database view)
也就是说,可以像hibernate那样,model不一定对应表。
这个用find_by_sql也可以实现,只不过这种用法更好看一些~
例子:
>> ShopClean.first(:select => "id, shop_name, city_id")
=> #<ShopClean id: 1, shop_name: "上海正善食品有限公司", city_id: 0>
>> ShopClean.first(:select => "id, shop_name, city_id", :from => "shops")
=> #<ShopClean id: 1, shop_name: "品尚豆捞 ", city_id: 1>
#select
:select - By default, this is "*" as in "SELECT * FROM", but can be changed if you, for example, want to do a join but not include the joined columns. Takes a string with the SELECT SQL fragment (e.g. "id, name").
这中用法的拼sql方法就是替换掉默认的SELECT * FROM,所以从拼sql的角度来看,可以在里面写count等语句
例如:
?> sp = ShopClean.first(:select => "city_id, count(*) cnt", :conditions => ["city_id = 1"], :group => "city_id")
=> #<ShopClean city_id: 1>
>> sp.city_id
=> 1
>> sp.cnt
=> "2584"
#conditions
:conditions - An SQL fragment like "administrator = 1", [ "user_name = ?", username ], or ["user_name = :user_name", { :user_name => user_name }]. See conditions in the intro.
说白了就是拼where语句
注意可以使用hibernate类似的占位符,可以防止sql注入吧~
["user_name = :user_name", { :user_name => user_name }
Y
Y
Y
Y
Y
Y
发表评论
-
ruby计算平方和开方_n次方n次幂
2022-06-28 21:52 702= = = ruby计算平方和开方 3 ** 2#= ... -
Ruby发送HTTP请求
2015-07-21 18:06 1193Ruby使用HTTP协议发送请求的方法备忘。 好像这 ... -
invalid byte sequence in GBK”问题 invalid byte sequence in UTF-8”问题
2015-07-03 15:11 2893碰见错误: test.rb:8:in `ma ... -
Ruby1.9之字符串内编码和外编码
2015-07-02 17:52 1314这里的文章很不错的么:Rubyist http://ru ... -
DevKit介绍和安装in railsInstaller
2015-05-26 17:01 2662DevKit介绍和安装in railsInstaller ... -
Rails_migrations中使用mysql的bigint
2014-09-30 14:32 1037From:http://rubyer.me/blog/468 ... -
Rails外如何启动rails的类自动加载_activates autoloading using ActiveSupport 3.x
2016-06-22 12:08 701The following cod ... -
如何在rails里打开gem里面的类_为何有时候不生效
2014-09-02 21:55 983在rails里面打开某个gem的类,补充一下等等,也 ... -
ruby的加载机制和rails_自动加载机制_对比
2014-09-02 16:51 1612prefer:http://urbanautomat ... -
Rails源码阅读(13)rails中的autoload和ruby的autoload
2014-07-30 17:13 2005Rails源码阅读(13)rails中的autoload和 ... -
Rails中命名路由的区别***_url与***_path
2014-07-29 16:37 1114Rails中命名路由的区别***_url与***_path ... -
ruby_gem安装_切换指定不同的源
2014-07-20 18:09 1180from:http://www.hiceon.com/to ... -
Ruby 的文件操作_不断总结
2014-07-11 11:55 1221一、用文件和目 ... -
Rails源码阅读(12)叫Rails的模块module_Rails常量使用
2014-07-02 09:35 1134The module nams "Rail ... -
注册邮件中的链接无host
2014-05-19 14:47 640在注册邮件中用命名路由的xxx_url不起作用,导致注 ... -
每个命令都有bundle exec的麻烦
2014-04-18 17:33 1460问题: 每次都得搞这个东西bundle exec放在 ... -
关于favicon.ico的报错:RoutingError
2014-03-31 14:45 2004错误: ActionController::Routin ... -
rbenv_安装太慢_解决办法
2014-03-31 13:51 2226rvm做了很多“不为人知”的事情,而且做的太 ... -
配置sunspot tomcat结合sunspot_rails
2014-02-26 10:58 946这个sunspot的东西还是有不少缺点的。 ht ... -
RubyOrRails_使用技巧_收集
2013-11-09 14:39 1106#link_to not working in sc ...
相关推荐
Rails/ActiveRecord 精简版 ![预览] [预览]: ./docs/preview.png 描述 Rails/ActiveRecord Lite 是流行的 Ruby on Rails 框架的精简版。 这个应用程序的目的是更深入地了解 Rails 和 ActiveRecord 的工作原理,特别...
3. **ActiveRecord**:Rails中的ORM(对象关系映射)工具,用于处理数据库操作。你需要熟悉数据库模型的创建、查询和关联。 4. **Scaffolding**:Rails提供的一种快速生成CRUD(创建、读取、更新、删除)操作的工具...
`weixin_rails_middleware` 是一个开源的 Ruby 框架中间件,设计用于帮助开发者轻松地在 Rails 应用程序中集成微信服务。这个中间件提供了与微信API交互的功能,包括验证微信服务器的请求、处理用户消息、以及发送...
rails_semantic_logger, Rails 语义记录器用语义记录器替换 Rails 缺省记录器 Rails 语义记录器 语义记录器用语义记录器替代 Rails 缺省记录器。http://github.com/rocketjob/rails_semantic_logger文档有关完整文档...
rails_apps_composer, 一个 gem,为 Rails 启动应用程序创建 Rails 应用程序模板 Rails 应用编辑器 Rails 应用程序编辑器 gem 安装一个 命令行 工具来从"食谱"的Collection 组装 Rails 应用程序。"你可以使用 rails_...
Rails的ActiveRecord ORM(对象关系映射)允许开发者以更面向对象的方式操作数据库,而路由系统则使得URL管理变得直观和灵活。 InspiniaAdmin 2.6.1 版本中的亮点包括: 1. **用户认证与授权**:内置了用户注册、...
《敏捷Web开发与Rails》第三版是一本深入探讨Ruby on Rails框架在敏捷软件开发方法论下的应用指南。本书由多位知名作者共同编写,包括Sam Ruby、Dave Thomas、David Heinemeier Hansson等,他们都是在Ruby社区内享有...
在Ruby on Rails框架中,ActiveRecord是一个至关重要的组件,它负责模型(Model)与数据库之间的交互。本实例将深入探讨ActiveRecord的基本用法,帮助理解如何在实际开发中有效地运用这个强大的工具。 首先,让我们...
《深入解析bhl_rails_solr源码》 在当今的Web开发领域,Rails框架以其高效、简洁的设计理念,深受开发者喜爱。同时,Solr作为一款强大的全文搜索引擎,被广泛应用于各类复杂的数据检索场景。当这两者结合时,便诞生...
使用创建内容的简单方法。 预习 示范 要求 依存关系 MiniMagick 支持的ORM ActiveRecord 支持的资产插件 CarrierWave 安装 使用rails <5和TurboLink <5进行测试 将此行添加到您的应用程序的Gemfile中: ...
rails_best_practices rails_best_practices是用于检查Rails代码质量的代码度量工具。 它支持以下ORM / ODM: 活动记录 蒙古型 mongomapper 以及以下模板引擎: erb 哈姆 减肥 拉布尔 rails_best_practices...
介绍插件,用于对记录进行排序(使用 gem)安装要启用rails_admin_acts_as_list,请将以下内容添加到您的Gemfile : gem 'rails_admin_acts_as_list'gem 'rails_admin' 重要提示: rails_admin_acts_as_list之前必须...
此外,Rails的ActiveRecord模型提供了强大的关联(Associations)功能,如has_many、belongs_to等,这在构建复杂的RESTful API时非常有用。通过关联,可以方便地处理资源之间的关系,比如用户拥有多个博客文章...
《Inspinia Admin - v2.5 Rails Seed Project:打造高效后台管理的全面解析》 在Web开发领域,后台管理界面的设计与实现是一项至关重要的任务,它直接影响到开发者的工作效率和用户体验。Inspinia Admin是一款广受...
《InspiniaAdmin 2.5在Rails框架下的种子项目详解》 InspiniaAdmin 2.5 Rails_Seed_Project是一款基于Bootstrap框架的高级管理模板,专为Ruby on Rails开发者设计,旨在加速Web应用程序的开发过程。这个项目作为...
RUBY的经典之作,对其在RAILS下开发写得很详细
Ruby on Rails 是一个流行的开源 web 开发框架,它基于 Ruby 语言,以其“约定优于配置”的设计理念和 MVC(模型-视图-控制器)架构模式受到开发者喜爱。在开发过程中,有时候我们需要集成富文本编辑器来方便用户...
Rails_3_Cheat_Sheets.pdf
InspiniaAdmin 2.5 Rails_full_version
rails new jruby_activerecord_test和配置database.yml或克隆此rails new jruby_activerecord_test cd到该文件夹并运行ruby -v确保您正在使用JRuby。 .tool-versions文件将其设置为jruby-9.2.13.0我也尝试了...