Ruby on rails Rails中的自定义链接
Rails有一些用于处理链接的内置帮助器方法(url\u for、link\u to、auto\u link),但没有一种方法能完全满足我的需要: 我希望用户能够指定一个URL,并且对我来说能够更改它显示为的文本。auto_link几乎满足了我的要求,只是你不能更改链接文本,而且它不能识别像stackoverflow.com这样键入的链接。您必须进入www.stackoverflow.com 我希望用户能够输入类似“stackoverflow.com”的内容,并能够生成如下html:Ruby on rails Rails中的自定义链接,ruby-on-rails,hyperlink,Ruby On Rails,Hyperlink,Rails有一些用于处理链接的内置帮助器方法(url\u for、link\u to、auto\u link),但没有一种方法能完全满足我的需要: 我希望用户能够指定一个URL,并且对我来说能够更改它显示为的文本。auto_link几乎满足了我的要求,只是你不能更改链接文本,而且它不能识别像stackoverflow.com这样键入的链接。您必须进入www.stackoverflow.com 我希望用户能够输入类似“stackoverflow.com”的内容,并能够生成如下html: <a
<a href="http://www.stackoverflow.com">Username</a>
有没有一个插件可以添加额外的链接助手方法?你可以将一个块传递给auto_link,结果就是链接文本。例如:
<% str = "something like http://stackoverflow.com would be the input" %>
<%= auto_link(str) do |url|
"Username"
end
%>
生成此HTML:
something like <a href="http://stackoverflow.com">Username</a> would be the input
类似的内容将作为输入
如果您希望链接文本根据URL的不同而有所不同,可以执行以下操作:
<% str = "something like http://stackoverflow.com, and another http://stackexchange.com url" %>
<%= auto_link(str) do |url|
if url.match(/overflow/)
"Username"
else
"Something"
end
end %>
由此产生:
something like <a href="http://stackoverflow.com">Username</a>, and another <a href="http://stackexchange.com">Something</a> url
类似,还有另一个url
这加上注释中关于调整URL正则表达式的提示,似乎它们可以满足您的要求。要覆盖
auto\u link
的正则表达式,您可以在config/initializers/auto\u link\u regex.rb
中创建一个ruby文件,并按给定粘贴代码。按照您想要的方式修改正则表达式。不过,我无法破解可以解决你问题的正则表达式。你可以在rubular.com上查看regexp,我已经在一些测试用例上试用了Chirantan的版本,它可以正常工作