Rails:link_to到不同资源名称的dynamic_path

时间:2012-12-28 03:41:02

标签: ruby-on-rails link-to

如何执行我可以像对象类字符串一样修改的link_to

首先,我将我的对象作为多态(书籍,杂志),所以我需要用户link_to(@object.title, [@object.user, @object])。这使得它像预期的那样具有多态性,如user_book_pathuser_magazine_path

我的问题是如何将user部分更改为编写者,例如。 writer_magazine_pathwriter_book_path?我的路线中的原因我已将用户命名为writer,我想知道如何将其用于link_to方法。

注意不知道我是否正确标题。如果是这样纠正它。

2 个答案:

答案 0 :(得分:0)

试试这个,例如帮助

在你的助手

def *method_name(@object)*
  link_to "whatever" write_"#{object}"_path
end

现在,在您的视图文件中

<%= method_name(@object) %>

答案 1 :(得分:0)

在这种情况下,您可以使用eval,如下所示

<%= link_to @object.title, 
    eval("writer_#{@object.class.name.downcase)_path(pass_object_here)"} %>