0

Rails 3でActiveRecordを使用してFacebookユーザーをモデル化する最良の方法は何ですか? id フィールドは自動的に作成されるため、このフィールドの auto_increment を取り除き、各ユーザーの fb_id を入力するにはどうすればよいですか? また、Facebook が必要とするより大きな値を格納できるように、型を int から変更する必要があります。

誰もこれを行うための事実上の方法を持っていますか? これはかなり一般的な実装に違いないと思いますか?

4

2 に答える 2

1

次のように、デフォルトのプライマリフィールド(id)をオーバーライドできます。

class CreateUsers < ActiveRecord::Migration
  def change
    create_table :users, :primary_key => 'facebook_id' do |t|
      t.string :name

      t.timestamps
    end
  end
end

次に、モデルで:

class User < ActiveRecord::Base
  self.primary_key = "facebook_id"
end

編集:しかし、あなたは本当にidフィールドを取り除く必要がありますか?たぶん、あなたはそれをいつか必要とするでしょう。また、サードパーティの認証ソリューション(Facebookなど)を探している場合は、OmniAuthの使用を検討する必要があります:https ://github.com/intridea/omniauth

于 2012-05-12T15:44:34.253 に答える
1

Rails が提供するデフォルト ID を保持し、以下を追加することをお勧めします。

class AddUIDandProviderandTokenToUsers < ActiveRecord::Migration
  def up
    add_column :users, :UID, :string
    add_column :users, :provider, :string
    add_column :users, :token, :string
  end

  def down
   #
  end
end

これにより、Facebook だけに頼るのではなく、ユーザー テーブルに他の外部認証システムを追加できるようになります。

UIDを文字列として保存することを忘れないでください。

于 2012-05-12T15:51:18.117 に答える