我对 ruby 有一些不理解的地方。
@items.each do |item|
item.column
end
将工作并返回 rails 中该列的值。但是
item = @items[some_item_id]
item.column
会给我一个 nil 未找到异常的方法。 两次我都得到了对象,但只有第一次我才能访问 Rails 数据方法。
那些破折号是什么意思 |...|做什么以及如何访问这些方法?
最佳答案
这会将 所有元素 收集在 @items
中以进入一个 block :
@items.each
#each
将适用于散列、数组和其他可枚举。
这会在 @items
中选择一个特定的元素:
@items[some_item_id]
方括号是一种方法(名为#[]
),用于哈希和数组中的元素引用。如果您收到 MethodNotFound
错误,这意味着 @items
不是散列或数组,并且没有名为 #[]
的方法。
如果 @items
是 ActiveRecord 对象的集合,并且您想通过 ID 选择一个对象,请使用:
@items.find(some_item_id)
关于ruby-on-rails - Ruby on Rails 调用对象的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25720868/