使用Rinku将微博转换为超链接

时间:2013-10-09 03:41:17

标签: ruby-on-rails rubygems gem railstutorial.org

我无法让Rinku正常工作,即将我的微博变成超链接。我已经安装了Rinku

宝石'rinku' 在app / helpers / micropost_helper.erb

创建了微博的助手
require 'rinku'

module MicroPostHelper
  def add_links(text)
    Rinku.auto_link(feed_item.content)
  end
end

但我不知道如何处理(文本)开口。我知道feed_item.content会在那里进行。这是我的_feed_item.html.erb

<li id="<%= feed_item.id %>">
  <%= link_to gravatar_for(feed_item.user), feed_item.user %>
    <span class="user">
      <%= link_to feed_item.user.name, feed_item.user %>
    </span>
    <span class="content"><%= feed_item.content %></span>
    <span class="timestamp">
      Posted <%= time_ago_in_words(feed_item.created_at) %> ago.
    </span>
  <% if current_user?(feed_item.user) %>
    <%= link_to "delete", feed_item, method: :delete,
                                     data: { confirm: "You sure?" },
                                     title: feed_item.content %>
  <% end %>
</li>

有人可以告诉我如何让这个工作吗?我不知道如何在Rinku代码中包装_feed_item.html.erb的第6行,或者如何让帮助程序正常工作。

1 个答案:

答案 0 :(得分:0)

我没有使用过rinku,但看起来你已经在帮助器中定义了一个常规的旧ruby方法。这是一种方法,就像time_ago_in_words一样 - 所以你可以调用方法并传递feed_item.content作为参数。

这看起来像是:

<span class="content"><%= add_links(feed_item.content) %></span>

这是否符合您的预期?

编辑:哦,我在其add_links方法定义中看到了其他内容,因为您将在feed_item.content中作为参数传入text,你需要在你的方法中使用它:

  def add_links(text)
    Rinku.auto_link(text)
  end

这有意义吗?