使轨道中的数组仅显示数字

时间:2011-04-01 19:30:23

标签: ruby-on-rails ruby ruby-on-rails-3 activerecord

我有一个我正在构建的数组:

Post.where(:user_id => current_user.id, :status_id => 2).select(:id).inspect.to_a

当我打印变量时,我得到了这个:

[#<Post id: 70>, #<Post id: 44>]

我希望它是:

[70, 44]

我应该在这做什么?

2 个答案:

答案 0 :(得分:8)

你可以这样做:

Post.where(:user_id => current_user.id, :status_id => 2).select(:id).map(&:id)

将select语句保留在那里仍然有用的原因是它减少了从数据库返回的数据量。即使相同的语句在没有显式选择的情况下也能正常工作,但使用它会更有效。

答案 1 :(得分:1)

Post.where(:user_id => current_user.id, :status_id => 2).map {|p| p.id }