3

この「.any」呼び出しで投稿が見つかった場合、投稿の ID を受け取る方法は?

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

3 に答える 3

6

おそらく次のようにする必要があります。

<% if (post = @posts.detect {|p| p.title == my_title} ) %>
  Post ID: <%= post.id %>
<% end %>
于 2011-08-03T14:55:14.777 に答える
1

Any はtrueor以外は何も返しませんfalse

http://www.ruby-doc.org/core/classes/Enumerable.html#M001500

何かを返したい場合は、使用しますselect

http://www.ruby-doc.org/core/classes/Enumerable.html#M001488

于 2011-08-03T14:55:12.887 に答える
0

次のようにして、条件が 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} %>
于 2011-08-03T15:02:06.700 に答える