fragment 感觉良好
是 ruby 对 win8 支持的支持才对吧。。
validates :name,presence: {message: "不会看示例啊"}
a1.zip(a2,a3).map{|arr| arr.reduce &:+}
其实 map 这些不还是循环..这么纠结干嘛
@leomao10 正解 relation 中初始化有这个
relation.rb
def initialize(klass, table, values = {})
@klass = klass
@table = table
@values = values
@implicit_readonly = nil
@loaded = false
@default_scoped = false
end
这个是 relation include 的 delegate 模块中的代码
def method_missing(method, *args, &block)
if @klass.respond_to?(method)
::ActiveRecord::Delegation.delegate_to_scoped_klass(method)
scoping { @klass.send(method, *args, &block) }
elsif Array.method_defined?(method)
::ActiveRecord::Delegation.delegate method, :to => :to_a
to_a.send(method, *args, &block)
elsif arel.respond_to?(method)
::ActiveRecord::Delegation.delegate method, :to => :arel
arel.send(method, *args, &block)
else
super
end
end
这个是 Base include 的 core 模块的代码,其中传了 self 作为 Relation 实例的 klass 并且,relation 在 method_missing 中调用,这样可以解释为何只在 Base 里 include 模块即可
def relation #:nodoc:
relation = Relation.new(self, arel_table)
if finder_needs_type_condition?
relation.where(type_condition).create_with(inheritance_column.to_sym => sti_name)
else
relation
end
end
但是有个很严重的问题!!!我找了一下午不知道 relaiton 是在哪里调用的!! Base 的查询方法都在 querying 中
delegate :find, :take, :take!, :first, :first!, :last, :last!, :exists?, :any?, :many?, :to => :all
delegate :first_or_create, :first_or_create!, :first_or_initialize, :to => :all
delegate :find_by, :find_by!, :to => :all
delegate :destroy, :destroy_all, :delete, :delete_all, :update, :update_all, :to => :all
delegate :find_each, :find_in_batches, :to => :all
delegate :select, :group, :order, :except, :reorder, :limit, :offset, :joins,
:where, :preload, :eager_load, :includes, :from, :lock, :readonly,
:having, :create_with, :uniq, :references, :none, :to => :all
delegate :count, :average, :minimum, :maximum, :sum, :calculate, :pluck, :ids, :to => :all
但是我怎么找都找不到 all 在哪里,用屁股想的话会知道 all 内调用了 relation 方法,但是我想看 all 的代码,却找不到他定义在哪里!求各位看过这里源码的指导下!
好吧,我表达能力有问题,我是想问为什么 AR::Relation 中可以调用 page 方法?因为我没有找到 AR::Relation 在哪里 include 模块了 我知道调用 page 这个 scope 后的 Relation 会 extending 模块 但是比如 User.where(xx).page 这个是怎么做到的??
又检查了下,好像和 ActiveRecord 的延迟执行有关,应该 page 最后还是在 AR::Base 上调用的,所以 AR::Relation 可以不定义。看源码求证下...
不知道我理解错你们的意思了,还是你们理解错我的意思了
我是找不到 AR::Relation 在哪里 include
想学就学,别人说的没用
对索引不了解。。借此地问下第一种索引对查单个字段有助吗?比如 where:article_id?还是说和具体数据库有关?我只知道 mongo 好像这种组合索引对单个没用,还要建单个的索引
为什么都 10L 了还没人吐槽
这里为啥不可以 nd.name = "Benzy"? puts nd.name 好多地方啊,又是 do .... end, 又是 begin ....end,搞得跟 pascal 语法差不多了。 为啥不能直接{}呢? 没有 return 这个关键词 ...
感觉你学的 Ruby 和我们学的不是一个次元的。。
Ruby 编程语言?
@blackanger 很多人对这个题目都感兴趣,加油下次再上
土鳖的问下 lazyload 是咋 load 来的。。?能不能 onclick 什么的?不一定要纠结 jq 的事件绑定。
根据 rails tutorial 上面说的,这个概率是小到了多少多少分之一。重复了算你运气好。不过再加个时间戳应该很安全了
感觉还是 source 自己改好。本来就是留着改的,自动跳转还不如想办法默认 rails new 直接生成 source=taobao 的 Gemfile 好些,把简单问题复杂化了
和 LZ 一样情况
binding 不一样,第一个在 C1 中,第二个在 C1 的 singletonclass 中
主要还是习惯,现在看python没end,还有C#等4格缩进各种不习惯
支持 LZ,让一个新手部署还是很难的
有个缺点啊。。镜像服务器万一出问题了(像上次那样),那国内全部阵亡。。 感觉还是自己改 source 好点,而且 source 本来就是给你改的吧,这样这个功能反而成鸡肋了
混淆器?一般情况下不需要吧
是有这 bug。WP7 可以回帖但是点发帖按钮没反应