Rails将消息传递给动态方法

时间:2011-04-08 02:29:43

标签: ruby-on-rails ruby

所以我想动态地拥有new_course_discussion_path(@discussable)或new_group_discussion_path(@discussable),具体取决于@discussable类类型。如何将消息(@discussable)传递给此方法?我试过了:

"new_#{@discussable.class.to_s.downcase}_discussion_path".constantize(@discussable)

但这表示“错误的参数数量(1表示0)”。我是铁杆新手。请帮忙!感谢。

更新: 现在,整行是

= link_to '>New Discussion', "new_#{@discussable.class.to_s.downcase}_discussion_path".constantize(@discussable)

2 个答案:

答案 0 :(得分:2)

send "new_#{@discussable.class.to_s.downcase}_discussion_path", @discussable

路径助手是方法而不是类。它们可以从控制器,视图和辅助方法访问,如果你不符合send调用的条件,它将调用自己的方法。

答案 1 :(得分:1)

您正在寻找Object.send method