我正在尝试添加一个名为“已启用?”的属性吗?到同时具有 getter 和 setter 的模型。但是,当我执行以下操作时:
def enabled?= value
# .. logic goes here ..
end
我收到语法错误,意外的“?”,需要“\n”或“;”
我应该怎么做?
最佳答案
是的,ruby 语法只允许 ?
在方法名称中,如果它是最后一个字符,所以 foo?=
是无效的。您可以做的一件事是定义 enabled?
、enable
和 disable
(或 enable!
和 disable!
如果你想强调它们是变异方法)。
如果这不符合您的需求,您可以只将方法命名为 enabled?
和 enabled=
并忍受名称之间的轻微不一致。
关于ruby - 如何为名称以问号结尾的属性定义 setter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3468658/