I feel like this is a dumb question

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

On Feb 2, 2008, at 2:43 PM, Chris H. wrote:

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…

Sure:

obj.send(“template#{sec_id}”)

Hope that helps.

James Edward G. II

Chris H. wrote:

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…

send “template#{sec_id}”

obj.send(“template#{sec_id}”)

awesome, I have used the string concatenation in rails for links and
action calls but never needed it for this. Thanks a lot

Chris

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