I am having the same problem with Rails 3.0.3. If you don't require context-dependent labels, you can use en.activerecord.attributes.activity.some_field_here (notice it is not nested inside the person model). However, I have not found any workaround if your label IS context dependent, and I believe it should probably be filed on lighthouse.
Garrett On Nov 28, 9:17 pm, Paul Schreiber <[email protected]> wrote: > Note: I am using Rails 2.3.10. > > Normally, you can use Rails’ I18n system to generate label text. > > For example, suppose you have a Person class with a name attribute. And this > ERB: > <%= form_for @person do |f| %> > <%= f.label :name %> > <%= f.text_field :name %> > <% end %> > > And you’d construct your en.yml like so: > en: > helpers: > label: > name: “your name” > > However, this doesn’t work very well with related objects and > accepts_nested_attributes_for. Suppose you have the same Person class as > before. And person has_many :activities (likewise, activity belongs_to > :person) and accepts_nested_attributes_for :activities. > > Now your ERB looks like this: > <%= form_for @person do |f| %> > <%= f.label :name %> > <%= f.text_field :name %> > <% f.fields_for :activities do |a| %> > <%= l.label :difficulty %> > <%= l.text_field :difficulty %> > <% end %> > <% end %> > > Various combinations indentation of person / activities / difficulty in my > en.yml file didn’t work. So I looked inside rails to see what’s going on. > > The relevant code is in > actionpack-2.3.10/lib/action_view/helpers/form_helper.rb. The method used is > > def to_label_tag(text = nil, options = {}) > on line 758. > > And the code doing the work is: > content = if text.blank? > i18n_label = I18n.t("helpers.label.#{object_name}.#{method_name}", > :default => “”) > i18n_label if i18n_label.present? > else > text.to_s > end > > The problem is you end up with a set of labels like: > helpers.label.person[activities_attributes][0].difficulty > helpers.label.person[activities_attributes][1].difficulty > helpers.label.person[activities_attributes][2].difficulty > > Is there a way you can put wildcards in YAML? If not, is there some other way > around this limitation? If not, this seems like a bug in Rails, and I’ll file > a lighthouse ticket. > > Paul > > smime.p7s > 4KViewDownload -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

