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