Как передать блок в качестве параметра оператора if? - PullRequest
0 голосов
/ 28 марта 2012

Я сейчас отрываю свои волосы, чтобы найти решение.Мне нужно разобрать немного Json, но само сокровище json не позволяет мне анализировать глубину более 2-х уровней, поэтому мне приходится делать много каждого блока.И чтобы исключить некоторые данные, которые мне не нужны, мне нужно сделать if / else.Итак, вот что я хотел бы сделать:

result['person']['participation'].each do |participation| 

   if participation['movie']['release'] { |release| release['releaseState']['code'] == 3011 || release['releaseState']['code'] == nil }
     next
   else
     puts title = participation['movie']['originalTitle']
   end 
end

Я тоже пробовал с «разве что», но боюсь, что не могу передать блок в выражении.Если нет, у вас есть способ сделать то, что мне нужно?

Большое спасибо!

Вот JSON http://api.allocine.fr/rest/v3/filmography?partner=YW5kcm9pZC12M3M&profile=medium&code=5568&filter=movie&format=json

1 Ответ

1 голос
/ 28 марта 2012

Мне нужно увидеть структуру вашего документа ... но если участие ['movie'] ['release'] является массивом, вы можете использовать Array#any?

result['person']['participation'].each do |participation| 

   if participation['movie']['release'].any? { |release| release['releaseState']['code'] == 3011 || release['releaseState']['code'] == nil }
     next
   else
     puts title = participation['movie']['originalTitle']
   end 
end

Если это не массивПожалуйста, опубликуйте пример документа.

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