0

以下 link_to 语句:

  <%= link_to image_tag("icons/document_24.png"),
              [program_code.program, program_code],
              :class      => :no_hover,
              :alt        => "Print Tracking Code",
              :title      => "Print Tracking Code",
              :target     => :new
  %>

将生成一个像/programs/1/program_codes/1

如果我希望 url 是/programs/1/program_codes/1.svg,如何指定要传递给的数组中的格式url_for?我搜索了 Rails API 文档并查看了几个示例,但找不到类似的内容。

4

2 回答 2

1

我认为您正在寻找:format选项。它会将文件扩展名附加到链接,例如“.svg”

确保将 :format 选项放在 link_to 方法的路径构建哈希中。

<%= link_to 'somewhere', {somewhere_to_path(@var), :format => "svg"},:title => "Print Tracking Code", :target => "_blank" %>

希望这可以帮助。

于 2011-06-16T07:34:45.827 回答
1

如果您正在处理特定的类并且可以使用命名路由,那么这是最有效的选择。但是,如果您正在处理嵌套资源并且父资源不是固定的(例如,在多态关联中),并且您想要指定格式,则 url_for 不能满足您的需求。

幸运的是,您可以使用polymorphic_url.

例如,如果server可以是 ManagedServer 或 UnmanagedServer 的实例,并且两者都可以有警报,您可以这样做:

polymorphic_url([server, :alerts], :format => :xml)

那会给你

/managed_server/123/alerts.xml
/unmanaged_server/123/alerts.xml
于 2016-12-06T21:25:23.837 回答