この「.any」呼び出しで投稿が見つかった場合、投稿の ID を受け取る方法は?
<% if @posts.any? {|p| p.title == my_title} %>
この「.any」呼び出しで投稿が見つかった場合、投稿の ID を受け取る方法は?
<% if @posts.any? {|p| p.title == my_title} %>
おそらく次のようにする必要があります。
<% if (post = @posts.detect {|p| p.title == my_title} ) %>
Post ID: <%= post.id %>
<% end %>
Any はtrue
or以外は何も返しませんfalse
。
http://www.ruby-doc.org/core/classes/Enumerable.html#M001500
何かを返したい場合は、使用しますselect
http://www.ruby-doc.org/core/classes/Enumerable.html#M001488
次のようにして、条件が true の場合に値を取得します。ただし、次の方法では、最後に一致した投稿にのみ post_id を設定します。それらすべてが必要な場合は、post_id を配列として設定します。
<% post_id = nil%>
<% if @posts.any? {|p| post_id = p.id if p.title == my_title; p.title == my_title} %>