我在学ruby,我一辈子都搞不懂它的作用是什么:
def topic_list
topics.map(&:name).join(",")
end
def topic_list=(names)
if names.present?
topics = names.split(",")
self.topics = topics.map do |n|
unless topic = Topic.find_by(slug: n)
topic = Topic.create!(name: n)
end
topic
end
end
end
为什么两个函数有相同的名称?第一个函数调用第二个函数吗?
最佳答案
topic_list
是getter,topic_list=
是setter方法。不,它们不是相同的方法。
这个问题将有助于作为这个概念的基本食物。所以读它。
方法self.topics = topics.map...
中的topic_list=
行和方法topics.map(&:name).join(",")
中的topic_list
行闻起来有一个getter称为topics
和settertopics=
。我确信(如果你告诉我这段代码仍然有效)通过查看你的代码。
关于ruby-on-rails - 具有相同名称的功能有什么作用?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21425580/