Help with String interpolation of ivar

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 forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs