Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails外部URL在视图中用作链接_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails Rails外部URL在视图中用作链接

Ruby on rails Rails外部URL在视图中用作链接,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,在我的rails应用程序中,我添加了一个字符串,用户可以将链接添加到facebook个人资料中,这是一个简单的文本字段,但在视图中我希望他们有一个链接 例如,如果用户添加了www.facebook.com/example我希望它在视图中显示为链接,因为我尝试了链接到方法,但不是指向用户配置文件的链接,而是刷新页面 这就是我试过的 如果表单正确地插入了数据,则可以为链接类定义帮助器类 #=> helpers/application_helper.rb def fb_link(user_fb)

在我的rails应用程序中,我添加了一个字符串,用户可以将链接添加到facebook个人资料中,这是一个简单的文本字段,但在视图中我希望他们有一个链接

例如,如果用户添加了www.facebook.com/example我希望它在视图中显示为链接,因为我尝试了
链接到
方法,但不是指向用户配置文件的链接,而是刷新页面

这就是我试过的


如果表单正确地插入了数据,则可以为链接类定义帮助器类

#=> helpers/application_helper.rb
def fb_link(user_fb)
    link_to "Facebook", "#{url_with_protocol(user_fb)}", class: "your-class", target: "new"
end
#=> url helper
def url_with_protocol(url)
    /^http/.match(url) ? url : "http://#{url}"
end
然后从视图

= fb_link(@user.fblink)
或者你可以这样工作

= link_to "Facebook", "#{url_with_protocol(@user.fblink)}", class: "your-class", target: "new"
希望它有帮助

试试


link\u to
方法的第一个参数将显示链接的值。在这种情况下,它是
Facebook
。第二个参数是
url\u路径
。当用户点击
Facebook
链接时,它将进入
url\u路径
。在这种情况下,它是
@user.fblink

除非它未保存为
http
,否则它将不作为链接工作

例如,如果你想让Facebook链接正常工作,它应该以
https://www.facebook.com/example

为此,您需要在表单输入字段中添加:

之后,在你的查看页面中,你可以像这样使用它

我的链接

不要在此处使用
link\u to
或任何rails视图帮助程序,因为其完整链接已保存在数据库中

<script>
$( "#myform" ).validate({
  rules: {
    field: {
      required: true,
      url: true
    }
  }, 
 message: {
   field:{ required: 'fb link can't be blank!', url: 'Please enter valid url'}
  }
});
</script>

$(“#myform”)。验证({
规则:{
字段:{
要求:正确,
网址:true
}
}, 
信息:{
字段:{必需:'fb链接不能为空!',url:'请输入有效url'}
}
});

这里没什么可讲的。
.fblink
是如何定义的?我已经更新了code@lowerhey@fool,但问题是它链接到了
http://localhost:3000/users/www.facebook.com/example
@NoorAliKhan我已经更新了我的答案,你可以照此操作了…你应该改名,伙计…你不是傻瓜,你是个天才…@NoorAliKhan it如果您将对
url
使用客户端验证而不是下面讨论的服务器端验证,那么用户界面会更好。
= fb_link(@user.fblink)
= link_to "Facebook", "#{url_with_protocol(@user.fblink)}", class: "your-class", target: "new"
<script>
$( "#myform" ).validate({
  rules: {
    field: {
      required: true,
      url: true
    }
  }, 
 message: {
   field:{ required: 'fb link can't be blank!', url: 'Please enter valid url'}
  }
});
</script>