`
gazeldx
  • 浏览: 105918 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Rails Guide学习心得和疑问

 
阅读更多

疑问:

has_and_belongs_to_many :hobbies 关联表按照guides说明,我将其命名为users_hobbies,但是它却关联hobbies_users。我不服,就改成了has_many through的方式了。

The build_association  method returns a new object of the associated type. This object will be instantiated from the passed attributes, and the link through this object’s foreign key will be set, but the associated object will not  yet be saved.

@customer = @order .build_customer( :customer_number => 123 ,
   :customer_name => "John Doe"

 

没保存的话何来id呢?我只能理解为虽然build_customer还没有被保存,但是在未来,它会被保存。

 

4.1.2.2 :class_name

If the name of the other model cannot be derived from the association name, you can use the:class_name  option to supply the model name. For example, if an order belongs to a customer, but the actual name of the model containing customers is Patron , you’d set things up this way:

class Order < ActiveRecord::Base
   belongs_to :customer , :class_name => "Patron"

 

我理解为如果在Order中无法获得customer,而只能通过Patron来获得customer,则用此写法。

:group 是什么意思?

 

  • proxy_owner  returns the object that the association is a part of.
  • proxy_reflection  returns the reflection object that describes the association.
  • proxy_target  returns the associated object for belongs_to  or has_one , or the collection of associated objects for has_many  or has_and_belongs_to_many .

 

上面是什么意思?

 

Joining Nested Associations (Multiple Level)
Category.joins( :posts => [{ :comments => :guest }, :tags ])

 

我理解上面的含义是关联到的comments是传入了:guest值参数匹配到的,posts就同理了,全部Inner join。

 

 

Client.exists?

The above returns false  if the clients  table is empty and true  otherwise.

You can also use any?  and many?  to check for existence on a model or relation.

# via a model
Post.any?
Post.many?
 
# via a named scope
Post.recent.any?
Post.recent.many?
 
# via a relation
Post.where( :published => true ).any?
Post.where( :published => true ).many?
 
# via an association
Post.first.categories.any?
Post.first.categories.many?

 

谁能告诉我any? many? exists?的区别。

Client.count(:age)表达的是什么意思?

 

<%= render :partial => f %>是什么意思?
3.4.7 Spacer Templates
<%= render @products , :spacer_template => "product_ruler" %>

Rails will render the _product_ruler partial (with no data passed in to it) between each pair of _product partials.

我理解上文的含义是这个模块是对于一些重复代码的自动调用。因为传入的是一个connection,有循环调用,不涉及变量的一些html可以用_product_ruler封装起来。

 

around_filter 没看明白。

routing.html

 

resource :geocoder如何与前面关联起来的?


 

 

 

Migrate

rollback回滚的是最近的一次migrate

rails generate AddXddToPost 这样的写法是会创建日期_add_xdd_to_post.rb这样的文件,就是根据开头大写的字母替换为_小写字母

t.references :categor y这样的写法并不会真正的创建外键,只是创建了category_id这个int的字段而

已,并不检验category这个东西是不是个东西,只是方便自己理解和写而已。

rake db:migrate:up VERSION=20080906120000 只是执行 VERSION=20080906120000的up

方法,而去掉:up ,则会将数据库结构执行到VERSION=20080906120000,可能执行多个.rb

下面表示可以验证符合字段的唯一性:

class Holiday < ActiveRecord::Base
   validates_uniqueness_of :name , :scope => :year ,
     :message => "should happen once per year"
end

 

class Order < ActiveRecord::Base
   belongs_to :customer
end

 

这样定以后,会生成几个方法,然后通过生成的方法使得我们可以如此引用它:

@customer = @order .customer

@order .customer = @customer

@customer = @order .build_customer( :customer_number => 123 ,

   :customer_name => "John Doe" )

@customer = @order .create_customer( :customer_number => 123 ,
   :customer_name => "John Doe" )

 

两者区别在于后者custormer会被保存。

 

注意最好不要修改migration的time文件名,修改文件内容后,可以用rollback,或者rake db:migrate:up/down VERSION=xxx的方式更新。文档推荐增量,说这样安全无害些,缺点就是文件太多了,乱。

 

修改application.rb下的config.i18n.default_locale = :zh需要重启web才能生效。

 

分享到:
评论

相关推荐

    Rails 学习资料

    标题“Rails学习资料”表明这是一份关于Rails框架的学习资源,可能包含教程、示例代码、最佳实践等内容,适合初学者和有一定经验的开发者。描述中的“仅仅三分,就可以帮助你搭好框架”,暗示这份资料可能包含快速...

    常用RAILS学习网站

    收集了常用RAILS学习的网址 收集了常用RAILS学习的网址

    rails查询学习笔记

    标签 "源码" 暗示了这篇笔记可能会涉及到一些实际的代码示例,读者可以通过阅读源码来理解和学习Rails查询的细节。而 "工具" 可能指的是Rails中用于辅助查询的工具或gem,如ActiveRecord的 scopes 和 relations,...

    rails指南 中文版

    Rails指南中文版是针对Ruby on Rails框架的一份详尽教程,旨在帮助开发者深入理解并熟练掌握这个强大的Web应用开发...通过深入学习和实践,你将成为一名高效的Rails开发者,能够创建出优雅、高效且易于维护的Web应用。

    Ruby on Rails 4.0 Guide mobi

    Ruby on Rails 4.0 Guide 英文mobi 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书

    rails学习教程

    本“rails学习教程”PDF文档将涵盖以上所有内容,通过详尽的实例和解释,帮助你从新手到熟手,全面掌握Rails开发。无论是想从事Web开发职业,还是想要提升个人项目开发能力,这都是一份不可多得的学习资料。

    Rails 101 入门电子书

    ### Rails 101 入门电子书知识点详解 #### 一、简介 ...通过以上内容的学习,初学者可以全面掌握Ruby on Rails的基础知识,包括环境搭建、基本操作、高级特性等,为后续更深入的学习打下坚实的基础。

    Ruby on Rails心得

    通过对《Ruby on Rails心得_V0.1》的学习,我们可以了解到 Ruby on Rails 不仅提供了一种高效、优雅的方式来构建 Web 应用,还通过其丰富的特性和约定简化了开发流程。对于初学者而言,掌握好环境搭建的基础知识是...

    Ruby on Rails 2.3 Guide.chm

    Ruby on Rails Guide:是rails官方教程,本人为了大家学习查阅的方便,制成chm格式。就如同java doc的chm格式一样方便。

    rails_routing_guide

    为了调试和验证路由的设置,Rails提供了列出现有路由和测试路由的工具。这些工具可以帮助开发者查看定义的所有路由,并确保路由按照预期工作。测试路由功能可以确保每个请求都能正确匹配到相应的路由,并调用正确的...

    ruby on rails 学习心得

    主要介绍ruby的开发框架ruby 的一些目录结构和框架啊源代码的应用,

    Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf

    综上所述,《Ruby on Rails Guides_ A Guide to Testing Rails Applications.pdf》是一个全面的资源,无论你是Rails新手还是资深开发者,都能从中学习到如何为Rails应用编写高质量的测试。从理论到实践,从单元测试...

    rails web server deploy guide

    标题 "rails web server deploy guide" 暗示了本文将关注如何部署Rails应用程序到Web服务器。Rails是Ruby on Rails的简称,是一个流行的开源Web开发框架,用于构建动态、数据驱动的网站。部署Rails应用通常涉及将...

    rails-beginner-s-guide

    《Rails初学者指南》是一本专为初学者设计的Rails框架学习资源,旨在帮助初学者快速入门Web开发,并以清晰的概念和紧凑的结构,掌握Rails的基础和进阶知识。 本书首先介绍了Rails框架的基本概念,包括Active Job的...

    rails学习免费书籍

    Ruby On Rails是一个用于编写网络应用程序的软件包.它基于一种计算机软件语言Ruby,给程序开发人员提供了强大的框架支持.本书介绍了rails的基本使用,深入扩展,练习挺多的

    Ruby on Rails Web开发学习实录随书光盘(源代码).

    本资源为"Ruby on Rails Web开发学习实录随书光盘"的源代码,是清华大学出版社出版的相关书籍的配套资料,旨在帮助读者深入理解和实践Rails开发。 1. **Ruby基础知识**:Ruby是一种面向对象的、动态类型的编程语言...

    ruby on rails 学习资料

    "ruby on rails 学习资料pdf"可能是综合性的学习指南,包含了从初学者到进阶者的各种主题,包括Rails的安装和配置、模型关系、控制器逻辑、视图渲染、部署到生产环境等。 "ruby on rails环境搭建.doc"会详细指导你...

    Ruby on Rails 4.0指南:学习Ruby on Rails 4.0和Ruby 2.0的分步指南Ruby on Rails 4.0 Guide: A step by step guide to learn Ruby on Rails 4.0 and Ruby 2.0

    学习Ruby on Rails 4.0的逐步指南。 它包括针对Ruby 2.0.0的基本教程,是为至少了解另一种编程语言并熟悉HTML的程序员编写的。

Global site tag (gtag.js) - Google Analytics