2011-09-24 56 views
3

我想知道如何得到一些动态的能力为我的导轨佣工(例如的link_to方法,方法。):动态轨道帮手

<h3><%= link_to object.name, ("#{object.class_path.to_s}")_path(object) %></h3> 

在这种情况下,把它扔对象的类变成一个链接。我很困惑如何在辅助方法中抛出一个方法。

任何意见将不胜感激!

+1

的代名词听起来像是你已经解决了这个问题,但对于您原来的做法备查你将不得不使用像这样发送:'link_to object.name,send(“#{object.class_path.to_s} _path”,object)' –

+0

啊,它是'发送',明白了。想知道如何工作。 谢谢你的抬头。 – Galaxy

回答

8

你想链接到对象的实例吗?

<%= link_to object.name, object %> 

Rails可以构建一个#show链接。

可以使用polymorphic_path更复杂/嵌套情况:

<%= link_to object.name, polymorphic_path([:edit, @user, object]) %> 

...为edit_user_#{object.class}_path(@user,object)

+0

我喜欢那个polymorphic_path。欢呼的小费! – Galaxy

+0

polymorphic_path是更好的选择,我在网上搜索这个主题。 我想@eric只会忘记给我们链接到[文档](http://api.rubyonrails.org/v5.1/classes/ActionDispatch/Routing/PolymorphicRoutes.html) – hguzman

0

我似乎做这个,而不是已经解决了这个:使用url_for代替something_path

<%= link_to object.name, url_for(object) %> 

是否有任何性能或可用性问题?有没有什么区别?

+0

不用担心性能 – ecoologic