久しぶりにRailsをさわっていて気がついた。 validationってオブジェクトのコレクションに対応していないんではないか? active_record_helper.rbに定義されているerror_messages_forの部分を読んでみると、
# file active_record_helper.rb, line 103
def error_messages_for(object_name, options = {})
  options = options.symbolize_keys
  object = instance_variable_get("@#{object_name}")
  if object && !object.errors.empty?
    content_tag("div",
    content_tag(
    options[:header_tag] || "h2",
    "#{pluralize(object.errors.count, "error")} prohibited this 
       #{object_name.to_s.gsub("_", " ")} from being saved"
    ) +
    content_tag("p", "There were problems with the following fields:") +
    content_tag("ul", object.errors.full_messages.collect { |msg|
              content_tag("li", msg) }),
    "id" => options[:id] || "errorExplanation", 
          "class" => options[:class]
         || "errorExplanation"
    )
  else
    ""
  end
end
やっぱりか・・・ これだけなら、ActionHelperに複数オブジェクト用のメソッドを定義すれば良いけど、 更にテーブルを結合している場合は、そもそも更新をどうすれば良いのだろう? 色々頭に方法は浮かぶけど、一番Railsらしい書き方に未だ至らず、現在朝の3時半。 くそぉ、明日やるか・・・ くやしい くやしい くやしい くやしい 絶対明日攻略してやる!