看不懂啊,这不就是一个简单 的 mixin 功能吗?
哦 其实是个 decorator
class SampleService
def meth(data)
"You sent me #{data}"
end
def m2(data)
"You sent me 2#{data}"
end
end
class Wrapper
def invoke(&blk)
"Wrapped: " + blk.call + " :Wrapped" if block_given?
end
end
module Decorator
def initialize(service, wrap)
@service = service
@wrap = wrap
end
def method_missing(meth, *args)
if @service.respond_to?(meth)
@wrap.invoke { @service.send(meth, *args) }
else
super
end
end
def respond_to?(meth)
@service.respond_to?(meth)
end
end
class Service
include Decorator
end
service = Service.new(SampleService.new, Wrapper.new)
puts service.meth("something")
puts service.m2("something")
没有收到,然后检查 spam,果真在哪里 大家要小心啊 ...
.superclass 是讲继承的关系 .class 是将 类与实例的关系 这是两种不同的关系,楼主搞混了。
看了一遍感觉很好,顶一个
个人理解,rails 好的原因在于,容易形成良好的设计,去芜存菁,不断向更好的方向演化。
railscasts.com 基本上就是一个 rails 的 video wiki,百科全书啊
我觉得划分成 4 个 class 比较好,也许 5 个
1 Course:代表一个课目,比如 econmics, computer sience has_many :lesson 一个 course 有很多节课 分在不同的时间
2 Schedule 就是 每个记录针对一节课 每天 4 个节课就是 4 个记录 has_many :lesson
3 Lesson belongs_to :course belongs_to :schedule has_many :relationships has_many :students, :through => :relationships
(其实 schedule 这个 class 不要也行 就用一个字符串表示 比如 08-01-a 表示 8 月 1 号第一节课)
4 Student has_many :relationships has_many :lessons, :through => :relationships
5 Relationship belongs_to :student belongs_to :lesson
不知是否符合需求,或者搞得太复杂了?呵呵
了解啦,多谢
又学到了,惭愧,拿着 pry 当 irb 用 呵呵
source_location 直接定位 source code 文件,真是方便啊!
哇,真的,又学了一招 呵呵 多谢!
自己想了一个方法: obj.class.ancestors.select { |c| c if c.instance_methods(false).include? :foo }
ruby 寻找 method 的过程是这样的吧?
友情提示,rails_for_zombies_2_cheatsheets.pdf 小抄总结得特别好
这也是开源平台的一个特有的情况,就是技术点碎片化。 因为很多都是不同的人贡献的,所以,每个小东西都需要学。 不像当年 M$做一个 IDE,大家就用这个就够了。 我就在 rspec 上面卡了很久。 直到看了 codeschool 的那个课,上面总结的太好了。 顺利通过。
这个比喻很形象啊
感觉 git 还是用命令行比较好
感觉还是有很多局限,不是一个完整的解决方案。 只是一个比较快速的方法,我想叫它,偷懒的 ajax :)
其实 现在做 ajax 已经很简单了,似乎它的意义也变小了。
其实 每一项单独拎出来都不算难,但是相关的东西太多 很快人就晕掉了。
对于哪些有完美主义倾向的人,会很快陷入一些细节而不能自拔...
@xiaolai 笑来老师涉猎真的好广啊,赞一个
@xiaolai 莫非是笑来老师 也开始搞 ruby rails 啦?
给你推荐一个好工具吧
@xuluan test
好帖要顶啊!
ruby 的哲学的确是相当独特的, 我们总不至于希望自己一直在写着符合 ruby 语法的 java 吧
请问怎么报名啊?
@hhuai 我的意思,就是楼上说的,实例化吧 在 cpp 里面 抽象类是不能实例化的,就像 ruby 里面的 module 一样 当然 这两种语言差别很大,只是一个不恰当的比喻而已