使用Ruby,如何通过字符串中的字符来定义实例变量?
我一直在尝试使用includes
,但这显然不是内置方法。
def reply
@reply = @tweet.includes("@")
end
另外,我如何确保“@”指的是实际用户,而不仅仅是在推文中浮动或以无效用户名为前缀?如果includes
有效,我会尝试:
def valid_reply
@valid_reply = @tweet.includes("@" + @username)
end
答案 0 :(得分:2)
你几乎做对了,你要找的方法叫做include?
:
def valid_reply
@valid_reply = @tweet.include?("@" + @username)
end
在此之后,@valid_reply
将为true
或false
,具体取决于@tweet
是否包含子字符串@[username]
。
注意:此方法仅将实例变量设置为布尔值的事实听起来有点可疑。如果我必须对此进行编码,我可能会定义一个方法valid_reply?
来检查@tweet是否是一个有效的回复:
def valid_reply?
@tweet.include?("@#{@username}")
end
你也可以在这里看到表达式替换的使用(虽然在这种情况下它看起来很奇怪)。