Rails - 将当前url添加到Facebook注释div href的正确语法是什么?

时间:2012-12-21 05:22:07

标签: facebook ruby-on-rails-3.2

我已经尝试了我能想到的每个变体,将当前的url路径添加到facebook评论div中的href。为什么这不起作用?

<div class="fb-comments" data-href="<%= #{request.protocol}#{request.host_with_port}#{request.fullpath} %>" data-width="470" data-num-posts="2"></div>

我也试过这个但是红宝石注入代码的结尾似乎以这种方式结束了div:

<div class="fb-comments" data-href=<%= "#{request.protocol}#{request.host_with_port}#{request.fullpath}" %> data-width="470" data-num-posts="2"></div>

2 个答案:

答案 0 :(得分:2)

发布另一种方式以防有人需要它,你在第一次尝试时就已经接近了,不需要#{},因为它已经在&lt;%=%&gt;

内了

这对我有用:

<div class="fb-comments" data-href="<%= request.protocol + request.host_with_port + request.fullpath %>" data-width="470" data-num-posts="10"></div>

但是,我使用此方法检索current_url时遇到一个小问题,因为Url中的任何参数都会影响评论的附加位置

例如http://localhost:3000/users/1?locale=en会存储与http://localhsot:3000/users/1?locale=ar不同的评论。这不是我想要的!!

所以,我发现使用request.path代替full_path解决了这个问题:

<div class="fb-comments" data-href="<%= request.protocol + request.host_with_port + request.path %>" data-width="470" data-num-posts="10"></div>

答案 1 :(得分:1)

我需要使用content_tag转换原来的facebook评论div:

<div class="fb-comments" data-href="http://example.com" data-width="470" data-num-posts="2"></div>

进入这个:

<%= content_tag(:div, nil, :class => 'fb-comments', "data-href" => "#{request.protocol}#{request.host_with_port}#{request.fullpath}", "data-width" => '470', "data-num-posts" => "2"  ) %>