我有一个ActiveRecord find
带有一些业务逻辑的猴子补丁,例如:
# lib/core_extensions/active_record/finder_methods/finder.rb
module ActiveRecord
module FinderMethods
def find(*args)
return super if block_given?
#... business logic code => my_error_control = true
raise "My Error" if my_error_control
retorn = find_with_ids(*args)
end
end
end
retorn
我还没有看到很多这样的例子,这让我产生了疑问:
应该在哪里finder.rb
?
在这个例子中,这个文件在,lib/core_extensions/...
但如果它包含业务逻辑,我认为finder.rb
应该在文件夹app/core_extensions/
中,不是吗?
编辑,在塞尔吉奥回答之后
像这样的事情,是一种不好的做法吗?
# lib/core_extensions/nil_class/image_attributes.rb
# suport for product images attributes
class NilClass
def main_image(size,evita_video)
"/images/paperclip_missing/original/missing.png"
end
end