我正在尝试添加多个对象:
class Person < ActiveRecord::Base
has_many :interests
...
def add_interests(interest_hashes)
interest_hashes.each do |interest|
Rails.logger.debug "person.apply_interests: interest: #{interest.inspect}"
interests.build(:name => interest.name, :category => interest.category)
end
save!
end
...
end
然而,在调用<some person>.add_interests(<some hashes>)
的日志中,我看到的只是第一个哈希 - 没有错误或异常。如果我删除构建方法,则循环按预期工作。
修改
interest_hashes.inspect
输出示例:
[{"category"=>"Interest", "name"=>"Formula One"}, {"category"=>"Musical instrument", "name"=>"Guitar"}]
答案 0 :(得分:0)
在name
上调用category
和interest
时,您应该收到NoMethodError,因为使用[]
方法访问哈希值。取代
interest.name
与
interest["name"]
或使用Struct,这可能更合适。