Рельсы "любые?" обратный вызов метода экземпляра? - PullRequest
3 голосов
/ 03 августа 2011

Как получить ID сообщения, если сообщение найдено по этому '. Any' звонку?

<% if @posts.any? {|p| p.title == my_title} %>

Ответы [ 3 ]

6 голосов
/ 03 августа 2011

Вы, вероятно, должны сделать это так:

<% if (post = @posts.detect {|p| p.title == my_title} ) %>
  Post ID: <%= post.id %>
<% end %>
1 голос
/ 03 августа 2011

Любой не вернет ничего, кроме true или false.

http://www.ruby -doc.org / ядро ​​/ классов / Enumerable.html # M001500

если вы хотите что-то вернуть, используйте select

http://www.ruby -doc.org / ядро ​​/ классов / Enumerable.html # M001488

0 голосов
/ 03 августа 2011

Сделайте что-то вроде следующего, получите значение, если условие истинно. Однако, следующим способом только установите post_id на последний найденный пост, если вы хотите, чтобы все они, затем установите post_id как массив:

<% post_id = nil%>
<% if @posts.any? {|p| post_id = p.id if p.title == my_title; p.title == my_title} %>
...