避免在编辑路径助手中硬编码资源名称

时间:2014-05-26 06:13:30

标签: ruby-on-rails

我希望你们不介意我用一个三段论来问这个问题......

<%= link_to "Show", thing_path(@thing.id) %>

<%= link_to "Show", @thing %>

作为

<%= link_to "Show", edit_thing_path(@thing.id) %>

是???

我想使用该编辑路径助手而不对资源名称进行硬编码,因此我可以将这段代码抽象为部分代码。

1 个答案:

答案 0 :(得分:3)

<%= link_to "Edit", edit_polymorphic_path(@thing) %>

-

您最好使用polymorphic path,如此处所述。

您所拥有的不同之处在于,当您将单个对象发送到link_to帮助程序时,它可以根据对象的model_name来消化路径。这对于show方法是可以的......但是edit呢?

Edit有自己的路径 - 您必须在helper中明确定义它;因此,我建议您不能只调用object来生成路径。相反,polymorphic_path帮助程序将帮助您根据发送的对象加载正确的编辑路径