Определите переменную экземпляра по наличию символа в строке в Ruby - PullRequest
2 голосов
/ 13 февраля 2012

Как с Ruby я могу определить переменную экземпляра по наличию символа в строке?

Я пытался использовать includes, но это явно не встроенный метод.

def reply 
  @reply = @tweet.includes("@") 
end  

Кроме того, как я могу убедиться, что «@» относится к реальному пользователю, а не просто добавляется в твит или не имеет префикса к неверному имени пользователя? Если includes сработало, я собирался попробовать:

def valid_reply 
  @valid_reply = @tweet.includes("@" + @username) 
end

1 Ответ

2 голосов
/ 13 февраля 2012

Вы почти правильно поняли, метод, который вы ищете, называется 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

Вы также видите здесь использование подстановки выражений (хотя это выглядитдовольно странно в этом случае).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...