我在评论加了 At.js
保存进去是纯文本,那么我显示出来怎么给他加链接呢?
要不就是写个 helper 的 tag 去循环每个评论的 body,但感觉这样不太好
要不就是保存进去是 HTML,那么怎么存 HTML 进去?
ruby-china 源码,打开 config/initializers/markdown.rb
# convert '@user' to link
# match any user even not exist.
def self.link_mention_user(text)
text.gsub!(/(^|[^a-zA-Z0-9_!#\$%&*@@])@([a-zA-Z0-9_]{1,20})/io) {
%(#{$1}<a href="/#{$2}" class="at_user" title="@#{$2}"><i>@</i>#{$2}</a>)
}
end
解决你的问题,还帮给 ruby-china 打个小补丁。 https://github.com/ruby-china/ruby-china/pull/99
comment.body.gsub(/(^|[^a-zA-Z0-9_!#\$%&*@@])@(.+\s{1})/io) {
%(#{$1}<a href="#{user_path(comment.account)}" class="at_user" title="@#{$2}"><i>@</i>#{$2}</a>)
}
文字连接地址从哪里来呢? 我在评论里面写上 我爱祖国 然后保存了,你准备给我加上什么连接呢!!
是不是应该这么理解。 你的评论是支持 html 标签的,也就是富文本,至少是部分的标签,然后你连带标签一起保存,然后显示的时候格式化一下,rails 有这方面的函数。escape 一下就可以了。