2009-07-04 15 views
2

私はGoogle Contacts APIを使用して、ユーザーがGmailから連絡先をインポートできるようにしています。GMailから連絡先をインポートする - デザイン質問

私は現在、私は、ユーザーが、彼らは私のアプリでインポートしたい連絡先を選択できるようにしたい -

  1. は、ユーザーが持っているすべての連絡先のXMLフィードをGET。
  2. これを解析し、連絡先ごとにimported_contactsテーブルにレコードを作成します。
  3. チェックボックスを使用してユーザーに一覧を表示するので、ユーザーはインポートする連絡先を選択できます。
  4. ユーザーがフォームを送信すると、選択した連絡先がimported_contactsからメイン連絡先テーブルにコピーされます。

これは問題なく動作しますが、正しくはありません。誰かが別のテーブル(imported_contacts)を使用することなく、そうする方法を提案することができます。

+0

これは私にとっては完璧に見えます。あなたはあなたの問題にどのような問題がありますか?インポートしないユーザーを保存するオーバーヘッド? – Janusz

+0

はい、+プライバシーの観点から私は自分のデータベースに、ユーザーが私にインポートを許可していない連絡先を持っていないと思います。私はそのような連絡先をデータベースから定期的に削除することができましたが、私はより良いアプローチを探しています。 –

+0

@Asaxena Facebookがこのようにしても同意する:http://blogoscoped.com/archive/2009-06-12-n15.html –

答えて

3

XMLからメモリ内のオブジェクトに連絡先をマップします。ユーザーが必要なものを選択した後で、主連絡先テーブルにのみ保存します。

+0

しかし、このような状況のビューコードがどのように見えるのか混乱している(私はRailsを使用しています)。 –

+0

ビューは変わりません。あなたはコレクションを繰り返していますが、それはコレクションがメモリ内のオブジェクトであり、テーブルに対応するモデルではないということだけです。 – miller

3

モデルビューコントローラ。

連絡先を連絡先オブジェクトにインポートし、ContactRepositoryに格納します。これはすべて完全にメモリ内にあり、あなたのモデルです。

ビューでこのリストをレンダリングすると、各チェックボックスのIDは、モデル内の連絡先オブジェクトのIDに関連します。

ユーザが送信すると、コントローラは選択したチェックボックス(およびそのID)のリストを表示することができます。モデルを通過してデータベースに必要な行が作成されます。

関連する問題