在ERB文件中构建url字符串

时间:2014-09-03 19:50:22

标签: ruby-on-rails ruby disqus link-to

我想在index.html.erb中显示每篇文章的disqus评论数。我需要生成url字符串并将其传递给link_to

所以基本上类似于url = article_path(article.id)+" / #disqus_thread"
 html生成的url字符串将为http://example.com/articles/21/#disqus_thread

以下是代码:

<% @article.each do |article| %>

  <% link_to article_path(article.id)'/#disqus_thread' %> <-- not working.

<% end %>                

感谢您的帮助!

3 个答案:

答案 0 :(得分:1)

首先,您需要知道的是,所有网址助手最终都会调用url_for。您可以在http://api.rubyonrails.org/classes/ActionView/RoutingUrlFor.html#method-i-url_for

找到网址的文档

看一下你会发现有:anchor选项允许你指定url的锚点。所以正确的“Rails方式”来做你需要的是:

<%= link_to article_path(article, anchor: 'disqus_thread') %>

您似乎忘记的另一件事是使用<%=代替<%

答案 1 :(得分:0)

你没有连接字符串,你需要使用+

link_to(article_path(article.id)+'/#disqus_thread')

另外,正如@engineersmnky所述,在erb中,<% %>运行代码而不呈现返回值。要呈现内容,您的代码需要格式化为<%= %>

答案 2 :(得分:-1)

为清晰起见,您可以这样做:

<%= link_to (article_path(article.id)+ "/#disqus_thread") %>

我不确定我是否明白这一点:

  

我想在index.html.erb

中显示每篇文章的disqus评论数

您希望链接显示如下:

21条评论

然后是我概述的链接路径?如果是这样,那就像:

<%= link_to article.comments.count, (article_path(article.id)+ "/#disqus_thread") %>