- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
新手提醒
我正在观看 Ryan Bate 的一个关于虚拟属性的 RailsCasts。他正在为博客平台上的一篇文章添加标签。 http://media.railscasts.com/assets/episodes/videos/167-more-on-virtual-attributes.mp4
有一次他有工作代码
attr_accessor :tag_names
在这个例子中,如果标签名称通过验证,则不会出现在表单中,因此他更改了属性的名称,并添加了一个方法,以便标签名称在不同字段出现验证错误时保持不变
attr_writer :tag_names
def tag_names
@tag_names || tags.map(&:name).join(' ')
end
我的问题是,能否请您结合他添加的方法解释一下将attr_accessor
改为attr_writer
的意义? 他添加那个方法的时候为什么要改属性名?
(请注意,我已经阅读了有关 attr_accessor 和 attr_writer 的文档,但它仍然不够点击,所以我不明白他为什么在创建该方法时进行此更改)
最佳答案
attr_accessor: :tag_names
创建这两个方法:
def tag_names
@tag_names
end
和
def tag_names=(value)
@tag_names=value
end
因为 Ryan 有自己的 tag_names
(“阅读器”)方法,所以他不需要使用 attr_accessor
动态创建它。他只需要 attr_writer
创建的 ("writer") 方法。
关于ruby-on-rails - Rails attr_accessor 和 attr_writer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7774957/
我可以想象,当您希望某个属性只可读,或可写和可读时,而不是当您希望某个属性可写而不可读时。 在某些情况下,您可能想要读取某些属性但无法更改它们。例如,如果您有一个 Animal 类并想用名称、年龄和颜
我对 Ruby 的 attr_writer 感到困惑。我试图在数组中添加一个值,但遇到以下错误: Line 13: undefined method `test' for # (NoMethodErr
这个问题在这里已经有了答案: Why do Ruby setters need "self." qualification within the class? (3 个答案) 关闭 7 年前。 如果
这是我的模块: module A def self.data=(data) @data = data end end 我想改用attr_writer。在这种情况下可能吗? 最佳答案 您
如果我理解正确的话,Ruby 允许设置实例属性只有当它们声明为可写时(例如通过 attr_writer、attr_accessor 或自定义 setter 方法)。我注意到我可以在没有显式编写器方法的
我需要编写具有依赖关系的类。我来自 .NET 背景,在 .NET 中,我们主要使用构造函数注入(inject)来将类依赖项注入(inject)到类中。我四处阅读,发现大多数博客(或者至少是我看过的博客
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 7 年前。 Improve t
这个问题在这里已经有了答案: Why do Ruby setters need "self." qualification within the class? (3 个答案) 关闭 7 年前。 这不
我正在使用 Ruby on Rails 3,因为我声明了一个包含很多变量的类,所以我会为这些类变量一次性声明所有“attr_reader”或“attr_writer” . 我试过了 class Per
新手提醒 我正在观看 Ryan Bate 的一个关于虚拟属性的 RailsCasts。他正在为博客平台上的一篇文章添加标签。 http://media.railscasts.com/assets/ep
Ruby 有这种方便快捷的方式来共享实例变量,通过使用像这样的键 attr_accessor :var attr_reader :var attr_writer :var 如果我可以简单地使用 att
我是一名优秀的程序员,十分优秀!