我已经准备好了这段代码。目标很简单 - >添加一本新书,然后调用描述方法,该方法应该产生“标题由作者写”
但是当我运行它时,我得到了
NoMethodError: undefined method `set_title_and_author' for #
出了什么问题?
class Book
def set_title_and_author=(title, author)
@title = title
@author = author
end
def description
print "#{title} is wrtten by #{author}"
end
end
book = Book.new
book.set_title_and_author("The hunger games", "Larry Page")
book.description
答案 0 :(得分:2)
你是否覆盖了=运算符,但之后没有调用它..
def set_title_and_author(title, author)
@title = title
@author = author
end
可能就是你想要的。
通常您会使用=方法来构建客户attr_writer。比如
def author=(author)
@author = author.capitalize
end
或类似的东西(上面强制举例)