0

Railsアプリには、Twitter用のurl_fieldを持つユーザーモデル(Devise)があります。

今、私は私のショーページにこれを持っています:

<%= link_to @deal.user.company_twitter, @deal.user.company_twitter, :class => "comp_twitter" %>

表示ページにリンク全体が表示されます(さらにhttp://)。これは、私のurl_fieldがユーザーに「http://」を追加させるか、リンクを検証しないためです。

ユーザーがプロファイルを作成するときに、Twitterリンク全体ではなく、「@name」のみを追加するようにします。また、「show」ページにTwitterリンクではなく@nameのみを表示したいと思います。これどうやってするの?

4

1 に答える 1

1

単に、を使用しないでください。url_fieldただし、のような通常のstringデータベースフィールドを使用してくださいtwitter_username。サインアップするとき、ユーザーにユーザー名を入力させますfoo

user.rbTwitterアカウントへの実際のURLを取得するには、モデルに新しいメソッドを作成します。

def twitter_url
  "http://twitter.com/#{self.twitter_username}"
end

利点は、この時点で、モデルに、ユーザーがを送信した後にこのURLが実際に存在するかどうかを確認するカスタム検証を含めることができることtwitter_usernameです。

最後に、URLだけでなく、ビューでそれを使用します。

<%= link_to "@#{@user.twitter_username}", @user.twitter_url %>

これにより、次のようにレンダリングされます。

<a href="http://twitter.com/foo">@foo</a>
于 2012-08-05T21:06:29.957 に答える