我有一系列名为@microposts的微博
所以它的
@microposts=Micropost.all
@purchases=@microposts.select(:kind => "purchase")
然后它给了我错误
ArgumentError: wrong number of arguments(1 for 0)
from (irb):23:in `select'
from (irb):23
我不确定select是否是我需要的。我在哪里尝试,但那也没有用。我也试过@ purcha = @ microposts.select(kind:“sale”)以防万一,但这也没用。
如果不清楚,kindots是微博表中的一列,表示“销售”或“购买”。我希望@purchases成为“购买”类型的微博数组
答案 0 :(得分:1)
您好以错误的方式使用选择。你应该先使用select 试试这个
@purchases = Micropost.where(:kind => "purchase")
这将对db进行另一次查询。如果您不想这样并尝试使用@microposts列表对象,则可以执行此操作
@microposts=Micropost.all
@purchases=@microposts.collect{ |m| m if m.kind == "purchase"}.compact
我认为种类是微博客对象的属性。
由于
答案 1 :(得分:0)
.where
返回一个条件,而不是一个数组。这可能是你的困惑。试试这个。
arr = Micropost.where(:kind => 'purchase').to_a