Rails“任何?”实例方法回调?

时间:2011-08-03 14:51:42

标签: ruby-on-rails callback any

如果通过此'。任何'电话找到帖子,如何接收帖子的ID?

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

3 个答案:

答案 0 :(得分:6)

你应该这样做:

<% if (post = @posts.detect {|p| p.title == my_title} ) %>
  Post ID: <%= post.id %>
<% end %>

答案 1 :(得分:1)

truefalse之外,任何内容都不会返回任何内容。

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

如果您想要返回某些内容,请使用select

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

答案 2 :(得分:0)

执行以下操作,如果条件为真,则获取值。但是,以下方式只将post_id设置为最后一个匹配的帖子,如果你想要所有的帖子,那么将post_id设置为数组:

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