2012-01-03 111 views

回答

8

一切都说明如下:http://apidock.com/rails/Class/class_attribute

如果你点击“查看源文件”,你会看到有没有可用的设置默认值的选项。你做得对。

+1

仅供参考我没有downvote你,但我不能看到我对你粘贴的URL做什么背书。实际上我已经查看过是否有一个默认值的选项。 Rails中有足够的魔力,我想得到明确的答案。在四处搜索后,我发现这个正式的Rails指南使用了与http://edgeguides.rubyonrails.org/active_support_core_extensions.html#class-attributes相同的初始化方法,所以我想这一切都很好! – poochenza 2012-01-03 13:54:32

+0

将upvote,对此感到遗憾。很高兴你找到了它。请编辑问题,以便我可以更正此问题。 – lzap 2012-01-03 17:40:17

+0

你必须改变你的问题中至少有一个字符,否则我无法调高... – lzap 2012-01-04 09:24:15

1

你做得很好(除非你继承)。

如果您继承此类,则可以使用inherited方法来避免“泄漏”。在今年的Rails分支主加入

def self.inherited(sub_class) 
    self.foobar = self.foobar.clone 
    # or `self.foobar = []` 
end 
+0

拒绝警告:它看起来像某物(可能是一个gem /插件)重写ActiveRecord :: Base.inherited方法。执行此钩子非常重要,以便您的模型正确设置。已经添加了一种解决方法来阻止这在3.2中导致错误,但如果挂钩被覆盖,未来的版本将不起作用。如果您使用Kaminari,请升级,因为它已知有此问题。 – 2015-12-27 01:24:15