gpt4 book ai didi

ruby-on-rails - Rails attr_accessor 和 attr_writer

转载 作者:数据小太阳 更新时间:2023-10-29 07:10:51 24 4
gpt4 key购买 nike

新手提醒

我正在观看 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com