send()的替代方法,用于创建动态link_to

时间:2012-03-16 09:31:53

标签: ruby-on-rails eval send

我正在玩物体的动态链接,并想出了这个:

link = link_to 'New', send("new_#{params[:controller].singularize}_path")

我对send部分特别感兴趣。这是一个很好的做法,还有其他选择吗?

2 个答案:

答案 0 :(得分:1)

使用send比使用其他方式更好。评估不太好。

但在link_to情况下,您可以使用url_for格式

link = link_to 'New', {:controller => params[:controller], :action => 'new'}

答案 1 :(得分:1)

您甚至不需要明确设置控制器。你可以这样做:

link = link_to 'New', action: 'new'