私はPHPの世界から来ており、Rubyはかなり新しいので、これを行うためのより良い方法があるかもしれません。このブロックは、より良いコードでより簡潔に表現できますか?
bands = Band.where(:type => 'Rock & Roll').only(:id)
band_ids = bands.map &:id
band_ids.each do |id|
lead_singer = LeadSinger.find(:band_id => id)
if lead_singer
lead_singer.rock_and_roll = true
lead_singer.save
end
end
それはすべて少し肥大化したように感じます。結果が見つからなかった場合に備えて追加した「iflead_singer」の部分ですが、これを回避するためのより良い方法があれば、啓蒙されたいと思います。
編集 私はMongoidでMongoDBを使用しているので、結合は私にとってオプションではありません。