2009-06-07 14 views
1

私は最初のレールアプリケーションを構築しており、最終的には多くのモデル/コントローラが必要になると思います。もちろん、彼らにはそれぞれIDが関連付けられています。彼らはすでに混乱し始めているのがわかります。ラベル付けする方法:Ruby on Railsアプリケーションのid?

ユーザコントローラでは、フィールドはidと呼ばれますが、他のすべてのコントローラではuser_idというラベルが付けられます。コントローラが複数のモデルを操作している場合、または他のコントローラでアクションを呼び出す場合、すべてのIDを真っ直ぐに保つのは面倒です。

私はそれらのすべてに明示的に接頭辞を付けるだけですが、ユーザーが実際にuser_idフィールドを持っていないため、これが原因でエラーが発生する恐れがあります。これは、update_attributes!のようなものを使用するときに問題になります。

誰か他にこの問題がありますか?それは本当に問題なのですか、これを実際より大きな問題にしていますか? idフィールドに名前を付けるための標準的なベストプラクティスはありますか?

ありがとうございます! Dave

答えて

7

これは実際問題ではありません。 Railsの規約は、テーブルの主キーにidと、そのテーブルにtable_name_idとしてアクセスする外部キーをラベル付けすることです。私はRailsのように、このデフォルトの動作を変更することに対してお勧めする

は設定より規約についての詳細をで、ネーミングのこの方法は、実際には複雑さが増大すると理解することが、あなたのDBスキーマがはるかに容易になりますありません。

プライマリキー名を変更する場合は、他の人の宝石やプラグインを使用するときにさらに問題が発生する可能性があります。

1

私の知る限り、idフィールドの最善の名前はidです。

私は約30のモデルとほぼ同じ数のコントローラを持っています。私は単一のコントローラで多くのモデルを操作し、私はidに何の問題も持っていませんでした。たぶん、いくつかのコードを貼り付けるともう少しお手伝いができます。

関連する問題