diff --git a/actionpack/lib/action_view/helpers/form_helper.rb b/actionpack/lib/action_view/helpers/form_helper.rb index 9baa9f1fff6a9d97cdf55255b0b8391ae435c537..81c9c888200002db589815bebff0f4b47bc019ce 100644 --- a/actionpack/lib/action_view/helpers/form_helper.rb +++ b/actionpack/lib/action_view/helpers/form_helper.rb @@ -777,12 +777,15 @@ def to_label_tag(text = nil, options = {}) options["for"] ||= name_and_id["id"] content = if text.blank? - i18n_label = I18n.t("views.labels.#{object_name}.#{method_name}", :default => "") - i18n_label if i18n_label.present? + I18n.t("views.labels.#{object_name}.#{method_name}", :default => "").presence else text.to_s end - content ||= object.class.human_attribute_name(method_name) if object + + content ||= if object && object.class.respond_to?(:human_attribute_name) + object.class.human_attribute_name(method_name) + end + content ||= method_name.humanize label_tag(name_and_id["id"], content, options)