Rails - 「に属する可能性がありますか?」をコード化する方法

StackOverflow https://stackoverflow.com/questions/2491988

  •  21-09-2019
  •  | 
  •  

質問

私は、多数の人々に関する情報を含む Rails アプリを開発しています。次の 2 つの使用例があります。

  1. 管理者は個人のプロファイルを入力して管理します
  2. ユーザーは、自分のプロファイルをサインアップ、ログイン、維持することを決定できます。

プロフィールとユーザーの関係を解明しようとしています。今のところ、それは、 profile belongs_to :user, 、 そして user has_one :profile.

しかし、一部のプロファイルにはまだユーザーが存在せず、管理者によって管理されているため、これは問題になります。その場合、 user_id の列 profiles null の場合、結合は失敗し、ページは読み込まれません。++

「おそらくbelongs_to」のような関係を設定するにはどうすればよいでしょうか?

++(実際には、エラーは表示されず、空白で表示されます。 development.log にもエラーはありませんが、ユーザーがいるプロファイルに対して実行するすべてのクエリが完了していないことがわかります。代わりに役立つエラー メッセージを取得する方法を誰かが知っていれば、それも素晴らしいことです。)

役に立ちましたか?

解決

このはそれを行うための正しい方法です。 belongs_tonull値を防ぎ、そしてあなたが望むもののようなこの音はありません。

そのプロファイルのユーザーテーブルを照会する必要(または方法)はありませんので、まだユーザーに属していないプロファイルの「ページ」は、多くのクエリとして持っていない可能性があります。

あなたはprofile.userためnilをチェックし、それに応じて自分の意見を提示しなければならない。

他のヒント

Profileが本当にUserに属している場合、それが今まで(それはそれはに添付ますEngineなしCarを考慮しても意味がありません同じように)はnullをすべきではありません。あなたがそうProfile.belongs_to :userの関連付けを削除する必要があります。

これは、編集Profiles自由にできるようにし、単に彼らだ準備ができたらUserにそれらを添付しなければなりません。しかし、あなたは別の問題があります:

  

人は、サインアップしてログインし、自分のプロフィールを維持することを決定することができます。

どのようにシステムが確実に事前に作成したプロファイルは、まだプロファイルを持っていない特定のユーザーに属するかを識別しますか?それはあなたが整理する必要があります設計上の問題です。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top