在我的rails应用程序中,我添加了一个字符串,用户可以将链接添加到Facebook个人资料中,它是一个简单的文本字段,但在视图中我希望他们有一个链接。
例如,如果用户添加 www.facebook.com/example ,我希望它在视图中显示为链接,我尝试了link_to
approch,而不是指向用户配置文件的链接,它只是刷新页面。
这就是我试过的
<%= link_to(@user.fblink) %>
迁移
class AddFblinkToUsers < ActiveRecord::Migration
def change
add_column :users, :fblink, :string
end
end
用户控制器prams
def user_params
params.require(:user).permit(:description, :avatar, :location, :fblink, :twlink, :ytlink, :username)
end
答案 0 :(得分:2)
如果您的表单正确插入了数据,那么您可以为
这样的链接定义一个帮助程序类#=> 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"
希望有所帮助
答案 1 :(得分:0)
尝试<%= link_to 'Facebook', @user.fblink %>
link_to
方法的第一个参数将显示链接的值。在这种情况下,它是Facebook
。第二个参数是url_path
。当用户点击Facebook
链接时,它将转到url_path
。在这种情况下,它是@user.fblink
。
答案 2 :(得分:0)
除非未将其保存为http
,
例如,如果您希望Facebook链接正常工作,则应将其作为https://www.facebook.com/example
因此,您需要在表单输入字段中输入jquery form validation:
然后在您的视图页面中,您可以像
一样使用它我的链接&lt;%= @ user。@ user.fblink%&gt;
请勿在此使用link_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>