首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails attr_accessor和attr_writer

Rails attr_accessor和attr_writer
EN

Stack Overflow用户
提问于 2011-10-15 00:41:04
回答 1查看 6.1K关注 0票数 5

新手警报

我正在看Ryan关于虚拟属性的RailsCasts之一。他正在为博客平台上的一篇文章添加标签。http://media.railscasts.com/assets/episodes/videos/167-more-on-virtual-attributes.mp4

有一段时间他有工作代码

代码语言:javascript
复制
attr_accessor :tag_names

在本例中,如果标记名进行验证,则它们不会出现在表单中,因此他更改了属性的名称,并添加了一个方法,以便在其他字段出现验证错误时标签名保持不变。

代码语言:javascript
复制
attr_writer :tag_names



def tag_names
    @tag_names || tags.map(&:name).join(' ')
end

我的问题是,您能不能结合他添加的方法,说明将attr_accessor更改为attr_writer的意义?添加该方法时为什么需要更改属性名?

(注意,我已经阅读了关于attr_accessor和attr_writer的文档,但仍然没有足够的点击量,所以我不明白他在创建该方法时为什么要做这个更改)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-15 01:03:07

attr_accessor: :tag_names创建这两种方法:

代码语言:javascript
复制
def tag_names
  @tag_names 
end

代码语言:javascript
复制
def tag_names=(value)
  @tag_names=value
end

因为Ryan有自己的tag_names ("reader")方法,所以他不需要用attr_accessor动态创建它。他只需要attr_writer创建的("writer")方法。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7774957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档