0

我正在开发 Rails 3.2.14 应用程序,我想在我的应用程序内添加指向页面的链接。

我的config/environments/*.rb文件中有设置

config.action_mailer.default_url_options = { :host => 'example.com' }

我已经能够通过使用类似的东西将链接添加到我的电子邮件模板

<%= link_to "Group name", group_url(@group) %>

但我想知道是否有办法提供一个选项,所以我可以打电话

<%= link_to "Group name", @group, ... %>

就像我在视图模板中所做的那样。将添加什么选项以便 ActionMailer 能够识别主机并将其添加到用作href.

4

2 回答 2

0

您可能知道link_to(name = nil, options = nil, html_options = nil, &block)在第二个参数(“href”)中接收选项哈希。

如果你看到源代码:

def link_to(name = nil, options = nil, html_options = nil, &block)
  html_options, options = options, name if block_given?
  options ||= {}

  html_options = convert_options_to_data_attributes(options, html_options)

  url = url_for(options)
  html_options['href'] ||= url

  content_tag(:a, name || url, html_options, &block)
end

这些选项被传递给url_for方法。在文档中:

请注意,默认情况下 :only_path 为 true,因此您将获得相对的“/controller/action”,而不是像“example.com/controller/action”这样的完全限定 URL。

这样你就可以:

<%= link_to "Group name", path: @group, only_path: false, ... %>

但这比使用_url辅助方法要冗长一些。在简历中,答案是:没有办法简单地@grouplink_to辅助方法中使用..

于 2013-10-10T00:02:41.063 回答
0

我将使用polymorphic_url这些链接中提到的方法http://api.rubyonrails.org/v3.2.14/files/actionpack/lib/action_dispatch/routing/polymorphic_routes_rb.htmlhttp://rails-bestpractices.com/帖子/55-生成多态网址

于 2013-10-10T00:35:53.950 回答