通过Ruby中字符串中的字符来定义实例变量

通过Ruby中字符串中的字符来定义实例变量,ruby,Ruby,使用Ruby,如何通过字符串中的字符来定义实例变量 我一直在尝试使用includes,但这显然不是一种内置方法 def reply @reply = @tweet.includes("@") end 此外,我如何确保“@”指的是一个实际用户,而不仅仅是在tweet中浮动或以无效用户名作为前缀?如果includes有效,我将尝试: def valid_reply @valid_reply = @tweet.includes("@" + @username) end 您几乎完

使用Ruby,如何通过字符串中的字符来定义实例变量

我一直在尝试使用
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