Ruby on rails 我怎样才能让用户只在url_字段中添加他们的@name而不是整个Twitter链接?
在我的Rails应用程序中,我有一个用户模型(Desive),其中包含Twitter的url_字段 现在我在我的展示页面中有:Ruby on rails 我怎样才能让用户只在url_字段中添加他们的@name而不是整个Twitter链接?,ruby-on-rails,devise,Ruby On Rails,Devise,在我的Rails应用程序中,我有一个用户模型(Desive),其中包含Twitter的url_字段 现在我在我的展示页面中有: <%= link_to @deal.user.company_twitter, @deal.user.company_twitter, :class => "comp_twitter" %> “comp_twitter”%> 它在显示页面中显示整个链接(甚至http://),这是因为我的url_字段让用户添加“http://”,否则它不会验证链接
<%= link_to @deal.user.company_twitter, @deal.user.company_twitter, :class => "comp_twitter" %>
“comp_twitter”%>
它在显示页面中显示整个链接(甚至http://
),这是因为我的url_字段让用户添加“http://”,否则它不会验证链接
我希望用户在创建个人资料时只添加他们的“@name”,而不是整个Twitter链接。我还想在“show”页面中只显示@name而不是Twitter链接。我该怎么做呢?不要使用
url\u字段
,而是使用常规的字符串
数据库字段,比如twitter\u用户名
。注册时,让用户输入用户名,例如foo
要获取Twitter帐户的真实URL,请在user.rb
模型中创建一个新方法:
def twitter_url
"http://twitter.com/#{self.twitter_username}"
end
优点是,此时,在您的模型中,您可以包括一个自定义验证,该验证将在用户提交其twitter\u用户名后检查此URL是否确实存在
最后,在视图中使用它,而不仅仅是URL:
<%= link_to "@#{@user.twitter_username}", @user.twitter_url %>
这将导致:
<a href="http://twitter.com/foo">@foo</a>