html - 如何在 Rails 中将 'link_to' 转换为 Absolute

标签 html ruby-on-rails ruby-on-rails-3 ruby-on-rails-4

我的程序有问题,我在数据库中添加了一个链接,例如“www.google.com”,当我点击该链接时,我被重定向到 localhost:3000/www.google.com ,当我将“http://www.google.com”放入数据库时​​,这不会发生。

我的代码

<td><%= link_to t.title, t.link_to_idea, :target => "_blank" %></td>

如何使此链接始终以绝对方式转换? (我想我这是解决方案)

谢谢!!

最佳答案

你可以这样做:

<td><%= link_to t.title, t.link_to_idea.start_with?('http') ? t.link_to_idea : "http://#{t.link_to_idea}", :target => "_blank" %></td>

..但这假设您希望所有链接都使用 http 而不是 https 保存。 在将链接保存在数据库中之前,您最好检查协议(protocol)。

例如,您可以按照以下答案的建议进行操作:Add http(s) to URL if it's not there?

before_validation :smart_add_url_protocol

protected

def smart_add_url_protocol
  unless self.url[/\Ahttp:\/\//] || self.url[/\Ahttps:\/\//]
    self.url = "http://#{self.url}"
  end
end

这样你就可以做你已经拥有的。

关于html - 如何在 Rails 中将 'link_to' 转换为 Absolute,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46078699/

相关文章:

html - 修改谷歌图表

ruby-on-rails - 当使用延迟作业调用模型方法时,字符串值将转换为 Time 对象

ruby-on-rails - 设计再确认 Hook

ruby-on-rails-3 - Prawn 表法不行

ruby-on-rails-3 - 如何删除应用程序中的 ActiveAdmin 链接?

javascript - 如何使用 JavaScript 删除 HTML 中的子节点?

javascript - 为什么启用和禁用按钮不起作用?

ruby-on-rails - Ruby on Rails 登录系统的简史是什么?

javascript - 使用 AngularJS 嵌套 HTML 页面

ruby-on-rails - 有没有模型分析 gem ?