Make Dumb Data Smart with composed_of() 通过composed_of() 使呆板的数据变聪明
基本语法如下
class SomeModel < ActiveRecord::Base
composed_of :some_attribute,
#要添加功能的SomeModel的属性名,
#这个属性可以随便起个名不一定是SomeModel 表中的属性
:class_name => 'SomeSpecialClass' ,
#附带功能的类
#就是他将上面的属性变得“聪明”
#如果与SomeModel 同名可省略设置
:mapping => [%w(model_attr_name special_class_attr)]
#model_attr_name
#原SomeModel 中的属性名(数据库中对应的属性)。
#special_class_attr是'SomeSpecialClass' 中与model_attr_name 对应的属性名
#:mapping也可以设置多个例如
#:mapping => [ %w(address_street street), %w(address_city city) ]
end
下面举个例子
#相当与:class_name => 'SomeSpecialClass'中的'SomeSpecialClass'
class Address
attr_reader :street, :city
def initialize(street, city)
@street, @city = street, city
end
def close_to?(other_address)
city == other_address.city
end
def ==(other_address)
city == other_address.city && street == other_address.street
end
end
============================================
customer.address_street = "Hyancintvej"
customer.address_city = "Copenhagen"
customer.address # => Address.new("Hyancintvej", "Copenhagen")
customer.address = Address.new("May Street", "Chicago")
customer.address_street # => "May Street"
customer.address_city # => "Chicago"
=============================================
但是对于给@SomeModel.some_attribute.special_class_attr赋值是不会保存的
要新建一个@some_attribute并赋值,然后@SomeModel.some_attribute=@some_attribute才行
分享到:
相关推荐
Ruby三神书之一(其余的两本是Agile.Web.Development.with.Rails和Ruby For Rails,在我的资源列表也有) Rails is large, powerful, and new. How do you use it effectively? How do you harness the power? And, ...
顾名思义,就是讲rails的小技巧,给你上rails的大餐,都是大牛们写的文章,对于想掌握常用技巧的开发者很有帮助
Rails Recipes Final.pdf
Rails Recipes
Ruby三神书之一(其余的两本是Agile.Web.Development.with.Rails和Ruby For Rails,在我的资源列表也有) Rails is large, powerful, and new. How do you use it effectively? How do you harness the power? And, ...
"Advanced Rails Recipes" is filled with pragmatic recipes you'll use on every Rails project. And by taking the code in these recipes and slipping it into your application you'll not only deliver your...
"Advanced Rails Recipes" is filled with pragmatic recipes you'll use on every Rails project. And by taking the code in these recipes and slipping it into your application you'll not only deliver your...
Advanced Rails Recipes 正式版。 不要资源分,免费提供,要下的赶快哦。。。
Rails.Recipes.Rails.3.Edition.和源码
像所有好的食谱一样,Rails Recipes 提供各种主题的不同处方集,例如用户界面、控制器、数据库、测试、蓝图和电子邮件。它也将标签分配给每个处方,以确定该处方涵盖什么内容。
官方推荐的Ruby On Rails书籍,Rails Recipes 2012最新版,英文, 专业ruby程序员必备
ruby rails web development recipes
Written for novice to intermediate Rails developers, Rails Recipes: Rails 3 Edition is packed with solutions to 70 of the most vexing problems you’re likely to face on the job. From building custom ...
专业RoR参考手册..
Ruby Recipes A Problem-Solution Approach 英文epub 本资源转载自网络,如有侵权,请联系上传者或csdn删除 查看此书详细信息请在美国亚马逊官网搜索此书
Rails_Recipes_with_Source_Code
Pragmatic.Bookshelf.Advanced.Rails.Recipes.May.2008