0

そのため、ActiveRecord を介して操作しようとしている既存のデータベースがあります。列、テーブル、およびデータベースの名前はすべてキャメルケースです。myColumnOne など。テーブル間の関連付けを定義しようとしたときに、Rails が受け入れられず、外部キー名の入力をそのままにしておくことを除いて、これは実際には問題になりません。

例: cableModems というテーブルと cmModels というテーブルの間の関連付けを定義しようとしています。cableModem には :cmModel, :foreign_key => "cmModelId" が含まれています

Rails は、foreign_key が実際には cm_model_id であると言いたいようです。上記のように入力しても。

私の質問はこれです:Railsにケーシングを受け入れる方法はありますか? それとも、関連付けなしでこれを行う必要がありますか?

どうもありがとう!

4

2 に答える 2

0

あなたのデータベースは本当に大文字と小文字に依存していますか? あなたが書いた場合、それはうまくいきませんか?

has_one :cm_model, :foreign_key => "cmmodelid"

また、次のようにクラスを作成します。

class CableModem < ActiveRecord::Base
  set_table_name "cableModems" 
  set_primary_key "cableModemId" 
end

それは何らかの形で役立ちますか?

于 2010-11-24T12:47:45.020 に答える
0

Ruby on Rails API ドキュメントを掘り下げて の実行パスを追跡した後has_one、自動 de-camelCasing を防ぐための迅速かつ簡単な方法がないことがすぐに明らかになりました。名前付きスコープと 1 つまたは 2 つのカスタム メソッドを使用すると、かなり簡単に の機能を複製できるはずですhas_one。そのため、現時点では関連付けを中止し、Rails Lighthouseのチケットとして提出することをお勧めします。

于 2010-11-24T06:01:27.853 に答える