I feel like this is a dumb question....

Discussion in 'Ruby' started by Chris Hickman, Feb 2, 2008.

  1. I am trying to call a method where the name is based on a parameter.

    For example: if sec_id = 1 I want to call template1
    if sec_id = 2 I want to call template2 ...

    Without doing if else statements, which is not reasonable for the amount
    of possible sec_id's, is there a way to say something like template and
    concatenate on the sec_id? to get template1, template2, template...

    I know you can do this to get string concatenation but I can't seem to
    use that at all as a method name, just a string.


    Thanks in advance,


    Chris
     
    Chris Hickman, Feb 2, 2008
    #1
    1. Advertisements

  2. Chris Hickman

    James Gray Guest

    Sure:

    obj.send("template#{sec_id}")

    Hope that helps.

    James Edward Gray II
     
    James Gray, Feb 2, 2008
    #2
    1. Advertisements

  3. send "template#{sec_id}"
     
    Joel VanderWerf, Feb 2, 2008
    #3
  4. Chris Hickman

    Jamey Cribbs Guest

    obj.send("template#{sec_id}")
     
    Jamey Cribbs, Feb 2, 2008
    #4
  5. awesome, I have used the string concatenation in rails for links and
    action calls but never needed it for this. Thanks a lot

    Chris
     
    Chris Hickman, Feb 2, 2008
    #5
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.