私は6ヶ月以来3 &のレールで作業していましたが、 "文字列"列を主キーとしてどのように実装できるかについてはまだ分かりません。私はそれが非整数フィールドがMySQLのテーブルのプライマリキーになることを許可していないと思います。 たとえば、 customer_code:stringをプライマリキーとして持つ顧客テーブルがある場合& customer_codeフィールドを使用してcustomerテーブルを参照するproductsテーブル、つまりproductsテーブルのcustomer_codeは外部キーです。レール3にこの関係を実装するにはどうすればよいですか? 誰も私にこの関係を実装するための適切な方法を提案できますか?rails 3 mysql relationships
0
A
答えて
0
私は物事をシンプルにし、標準的なレールの規則に従います - あなたのキーの自動IDフィールドを使用してください。
コードを取得するためにユーザーオブジェクトをルックアップする必要がないように、製品テーブルにcustomer_codeを設定する場合は、製品を保存するときにこれも保存します。
0
Costumer
とProducts
の2つのモデルがあります。だからこのソリューションはどうですか?落とし穴に
class Costumer < AR::Base
set_primary_key 'code'
has_many :products, :foreign_key => :costumer_code
validates :code, :presence => true
end
class Product < AR::Base
belongs_to :costumer, :foreign_key => :costumer_code
end
は、それがid
キーデフォルトのプライマリのような自動インクリメントではありませんので、あなたは、コードが正しく作成時に設定されているのcostumersを確保しなければならないということです。 before_create
コールバックが役に立ちます。
0
class Product < ActiveRecord::Base
belongs_to :customer, :foreign_key => :customer_code, :primary_key => :customer_code
end
関連する問題
- 1. Rails "Sometimes Has One" Relationships
- 2. Rails 3 MySql and MongoDB
- 3. Laravel Eloquent querying relationships
- 4. Rails 3.x MySQL Monitor/Reviewer
- 5. rails table relationships:関連する値を出力する方法は?
- 6. Rails 3のマイグレーション:boolean(mysql vs postgreSQL)
- 7. Mysql to PostgreSql Rails 3 heroku app true/false
- 8. Railsの3 - ActiveRecordの+ MySQLとRANDOM機能
- 9. MySQL GemとRails 3(Lion 10.7)のインストール
- 10. Rails 3 - rails-dbd-mysql gemはmysql2ではなくmysqlに依存します
- 11. jQuery in Rails 3 "Beginning Rails 3"
- 12. Rails 3 - Rails 3アプリでS3
- 13. Rails 3テーブルロック
- 14. Rails 3のスクリーンスクレイピング3
- 15. Rails 3
- 16. Rails 3 Coffee Handler Missing
- 17. Rails 3:無限のSQLクエリ?
- 18. PGError:ERROR:relation "companies"が存在しません(postgresql、mysql、rails 3)
- 19. Rails 3:動的ベースのMySQLクエリのパラメータをループする
- 20. rails 3 meta_search usage
- 21. Rails 3&validate_on_create
- 22. バックグラウンドジョブマネージャfor Rails 3
- 23. Railsの3:モデル
- 24. Rails 3 redirectioning
- 25. ActiveModel :: AttributeError rails 3
- 26. Rails 3 find_or_create_by
- 27. Has_and_belongs_to_many in Rails 3
- 28. Rails 3 + Meta_Searchカスタムリダイレクト
- 29. jQuery&Rails 3 - コールバック
- 30. Rails 3 SSLプロトコルリンク
「before_filter」ではなく「before_create」または「before_save」です。フィルタはコントローラ内にあります。 – RocketR
うん、そう。もちろんbefore_createコールバックです。 –