Forum: Rails I18n Help with String interpolation of ivar

Ef75ffd5cef200d26702d07a10d528e8?d=identicon&s=25 Paul Schreiber (Guest)
on 2011-02-23 00:13
(Received via mailing list)
Suppose I have a model class like this:
class Shoebox < ActiveRecord::Base
  validates_inclusion_of :description, :in => ["small", "medium"],
:message => I18n.t("activerecord.errors.models.shoebox.with_name",
:name => name)
end

And some yaml:
en:
 activerecord:
  errors:
   models:
    shoebox:
     with_name: "the description of %{name} is not in the approved list"

And I create a new Shoebox:
   s = Shoebox.new(:description => "large", :name => "Bob")
   s.valid?

But when I look at the error (s.errors.first.message), I see:
   "the description of Shoebox is not in the approved list"

and not:
   "the description of Bob is not in the approved list"

I've tried :name => name, , :name => :name, :name => lambda{name},
:name => lambda{:name}.

I've tried creating a helper method
  def shoebox_name
   name
  end

And passing :name => shoebox_name, :name => :shoebox_name, :name =>
lambda{shoebox_name} and :name => lambda {:shoebox_name}.

How can I get the ivar value for name to be interpolated into the
string?


Paul
This topic is locked and can not be replied to.