貌似是 marshal 到 cookies 里面的,看看 cookie_store
@knwang 最好还是不要用 method_missing 吧,需要查找两遍方法链
这么多层。。。。 用 try 吧
data = Hash.new({})
@knwang 呃,我想你误会了,我说的是那篇帖子http://ruby-china.org/topics/5141
而且在帖子里我也说了
我觉得这样的用法没有什么问题,主要是自己的基础知识不过硬引起的,这次遇到了,我下次就会注意。
那大家都觉得有点问题,好吧,那我也只有说
好吧,这种代码是有点坏味道,但是大家还是应当注意一下,不要在小问题上犯错
大多程序员都有点小固执,讨论着就会有点小火气,大家消消火继续讨论就是了,
只是大家不要歪楼
@knwang 这个代码是有历史原因的,我的那篇帖子只是想抛出一个问题,引起大家的注意,以后就不会栽在这个上面了,但是似乎大家都不这么想,非要评价并且说服他人,说这样不好,那样不妙,这个我觉得似乎歪楼了
哇哇
@hooopo 威武
@sundevilyang 参加也需要报名么?
好吧,这种代码是有点坏味道,但是大家还是应当注意一下,不要在小问题上犯错
相当于判断是否存在,而且两个!非常醒目
刚刚在看@xdite 大姐的 blog,很有帮助
额,我不是在评价这种写法好不好,只是提醒一下大家。 或者我想多了。。。
@yakjuly 确实,if 后置就应该只做判断
@sevk 我想你应该没有理解我的问题
@zhaoguobin no! 加括号没有用的 @sevk cc=ee 是赋值语句,返回永远是 true 我觉得这句很有问题 ruby 里面返回的是赋值后的值 这里值为 nil 的话是不会执行下去的...
支持!!!
@HungYuHei 哪加括号?
a = b if (b = 1.to_s)
这样?
undefined local variable or method `b' for #<Object:0x7fb6b7b242b8>
这个用 hash 更好吧
这么多次没去,这次一定要去
def version(name, options = {}, &block)
name = name.to_sym
unless versions[name]
uploader = Class.new(self)
uploader.versions = {}
# Define the enable_processing method for versions so they get the
# value from the parent class unless explicitly overwritten
uploader.class_eval <<-RUBY, __FILE__, __LINE__ + 1
def self.enable_processing(value=nil)
self.enable_processing = value if value
if !@enable_processing.nil?
@enable_processing
else
superclass.enable_processing
end
end
RUBY
# Add the current version hash to class attribute :versions
current_version = {}
current_version[name] = {
:uploader => uploader,
:options => options
}
self.versions = versions.merge(current_version)
versions[name][:uploader].version_names += [name]
class_eval <<-RUBY
def #{name}
versions[:#{name}]
end
RUBY
# as the processors get the output from the previous processors as their
# input we must not stack the processors here
versions[name][:uploader].processors = versions[name][:uploader].processors.dup
versions[name][:uploader].processors.clear
end
versions[name][:uploader].class_eval(&block) if block
versions[name]
end
response.body
看了一部分,rails2 的,rails3 还没怎么看