K ......这看起来非常简单,但看起来并不标准化。我只是在寻找几个小时,但希望有人能指出我正确的方向。
因此,Object
的实例有描述。 Object has_many comments
。例如,如果用户在其中一个字段中发布了一个网址http://www.foodnetwork.com/recipes/ree-drummond/tequila-lime-chicken-recipe/index.html。当我输入这个时,我在下面看到某种东西,知道将其转换为可点击链接。我想更进一步。我希望看到相同的链接转换为主网址,但仍然是实际链接,即foodnetwork。
rails可以动态做类似的事吗?这样的东西有宝石吗?我应该开始制作前面提到的link_bot gem吗?
在向正确的方向指示之后,我使用了辅助方法,因为在模型中的播放不起作用。视图:
<% if object.comments.any? %>
<% object.comments.each do |comment| %>
<div class='comment block'>
<div class='comment user'>
<%= first_name(comment.user) %>
<span class='comment time'><%= time_ago_in_words(comment.created_at) %> ago</span>
</div>
<div class='comment content'>
<%= parse_links(comment.content) %>
</div>
</div>
<% end %>
<% end %>
帮帮人:
def parse_links(comment)
auto_link(comment, html: {target: '_blank'}) do |text|
URI.parse(text).host
end
end
干杯!
答案 0 :(得分:1)
您应该尝试auto_link gem。
他们给出了一个玩链接文本的例子:
post_body = "Welcome to my new blog at http://www.myblog.com/. Please e-mail me at me@email.com."
auto_link(post_body, :html => { :target => '_blank' }) do |text|
truncate(text, 15)
end
# => "Welcome to my new blog at <a href=\"http://www.myblog.com/\" target=\"_blank\">http://www.m...</a>.
试试这个:
<%= auto_link(comment.content, html: {target: '_blank'}) do |text| %>
# if URI.parse(text).host doesn't work try a regex:
<%= text.match(/http:\/\/([^\/]*).*/)[1] %> # is there a better way to do this regex?
# also try just <% instead of <%= if you get weird outputs.
<% end %>
如果您收到任何错误,请将其添加到您的问题中。