Undefined method error

I am trying to DRY some code in some of my controllers and keep getting
an undefined method error. Details as follows:

Some controllers dynamically generate methods inside a loop using
define_method. E.g.:

[‘shipment_product’, ‘transport’].each do |object_name|
sub_model_class = object_name.camelize.constantize
define_method(“list_#{object_name}”) do
@sub_model = sub_model_class.new
render ‘shared/list_sub_model’
end


end

I tried to move this code to application.rb as separate methods and
call the methods from each controller. E.g.:

in application.rb:

def sub_model_list_for(object_name)
sub_model_class = object_name.camelize.constantize
define_method(“list_#{object_name}”) do
@sub_model = sub_model_class.new
render ‘shared/list_sub_model’
end
end

in the controller:
[‘shipment_product’, ‘transport’].each do |object_name|
sub_model_list_for(object_name)


end

However if I do this, upon loading the controller I get undefined
method error for sub_model_list_for. (same thing happens in the console
if I ‘load whatever_controller.rb’).

Any ideas? This code is actually in two controllers but probably will
generate some others that might use this code and I don’t want to
repeat the beast all over the place.

Thanks in advance,
Atha