Рубиновая проверка, если переменная имеет длину - PullRequest
2 голосов
/ 29 февраля 2012

Ладно, это может звучать глупо, но у меня возникли всевозможные проблемы, и я уверен, что должен быть простой способ сделать это:

Как проверить в ruby, имеет ли переменная длину?

Если я использую @dvds.length?, я получаю ошибку undefined method length for ..., когда она не имеет длины.

По сути, у меня есть несколько поисков, которые в основном получают ActiveRecord: Relation, но один или два просто возвращают одну запись, так как они ищут по id. У меня есть такие вещи, как:

@total = @dvds.length

Чтобы показать, сколько мы нашли.

Когда @dvds не содержит никакой длины, я получаю ошибку для неопределенного метода. Я сделал что-то вроде:

if @dvds.class == 'ActiveRecord:Relation' 

чтобы обойти одну ошибку, но это ужасно и склонно к большему количеству ошибок.

Должен быть способ проверки Ruby, имеет ли переменная длину или нет, это намного красивее и проще, нет?

В идеале я ищу что-то вроде:

@total = @dvds.length if @dvds.length

или аналогичный.

Спасибо.

1 Ответ

4 голосов
/ 29 февраля 2012

Вы можете проверить, реагирует ли объект на указанный метод, используя Object # response_to? method:

obj.respond_to? :length # true or false
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...