我对鲁比有些不理解。

@items.each do |item|
  item.column
end

将工作并返回rails中该列的值但是
item = @items[some_item_id]
item.column

会给我一个没有找到异常的方法。
两次我都得到了对象,但只有第一次我才能访问rails数据方法。
这些破折号是做什么的?我如何访问这些方法?

最佳答案

这会收集@items中的所有元素,以便进入一个块:

@items.each

#each将处理散列、数组和其他可枚举项。
这将选择@items中的特定元素:
@items[some_item_id]

方括号是散列和数组中用于元素引用的方法(名为#[])如果出现MethodNotFound错误,则表示@items不是哈希或数组,并且没有名为#[]的方法。
如果@items是ActiveRecord对象的集合,并且要按ID选择一个对象,请使用:
@items.find(some_item_id)

08-06 02:36
查看更多