From: Luc Juggery Date: 2006-11-05T00:03:38+09:00 Subject: Add dynamic instance methods in a controller class Hello All, I have a problem while developping an application using rails. In fact, this is more a general question on Ruby methods. I'd like to add some methods to my controller depending upon some parameters read from an xml file during initialisation (I hope I am quite clear :-) ) Below is the code I am using: ---------------- require 'rexml/Document' include REXML class MyController < ApplicationController def index # Xsd is a model (not ActiveRecord that is used to get values from an XML file xsd = Xsd.new("myfile.xsd") # Get main section @main_sections = xsd.get_main_sections # Get item for first section @item = xsd.get_items_per_section(@main_sections[0].to_s) # Dynamically create method for to retrieve list of fields for each main sections # THIS PART IS NOT WORKING @main_sections.each do |section| self.instance_eval{ define_method("get_item_for_#{section}") {"toto"}} end end end ----------------- While testing this, I have an error message saying that the define_method does not exist !!!! Why is this method not found ??? I am still not sure about the instance_eval, class_eval, define_method I need to use. Do you have any clues regarding this problem ? Thanks a lot, Luc