标签: ruby ruby-on-rails-3
我有两个邮寄
welcome_manger(user) welcome_participant(user)
两者都发送不同的信息并具有不同的布局。
当我调用传递方法时,我想使用类似下面的内容
UserMailer.welcome_self.role(self.user)
这不起作用。我怎么能做到这一点?
答案 0 :(得分:2)
或许这样的事情:
m = 'welcome_' + self.role UserMailer.send(m.to_sym, [self.user])
假设self.role返回一个字符串。
self.role
send方法按名称调用方法:
send
<强> obj.send(symbol [, args...]) → obj 强> 调用 symbol 标识的方法,并将指定的参数传递给它。
obj.send(symbol [, args...]) → obj
因此,您只需要将相应的方法名称构建为字符串,然后使用to_sym将其转换为符号。
to_sym