我对鲁比有些不理解。
@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)