0

こんにちは皆さん、フォームで自動車サービスの申し込みを受け付けている状況があります。私は次のモデルを持っています:

Car
belongs_to :car_company

Car_company
has_many :cars

Services
attributes_accessible :car_company_id, :car_id
#virtual attributes
attributes_accessible :car_company_name, :car_reg

問題は、ユーザーが単一のフォームに自動車会社の名前と自動車の登録番号を入力できることです。会社名が存在しない場合は、新しい会社を作成し、それをサービスに関連付けます。同じことが車にも当てはまります。私はこの部分を機能させましたが、このフォームを送信すると、carcompany が存在するかどうかに関係なく、作成された車が car_company に自動的に関連付けられるようにする必要があります。

このことを正しい方法で行う方法について、私はここでかなり立ち往生していますか?基本的には、フォームで使用するためだけに車の詳細と会社の詳細を別々に入力する必要がないようにするためです。アイデアはありますか?

4

1 に答える 1

0

型にはまらないモデル名を使用しているようです。レールの慣例により、モデルはCarCompany. しかし、私はあなたが持っているものはうまくいくと思います。

このようなものを適切なコントローラーに入れることは、あなたが望むようなものかもしれません。そうでない場合は、何が欲しいかを明確にしてください。

car_company = Car_company.find_or_initialize_by_name(params[:car_company_name])
car = Car.find_or_initialize_by_registration(params[:car_registration])
car_company.cars << car
car_company.save

実際には、真ん中の 2 行を と組み合わせることができるかもしれませんがcar_company.cars.find_or...、それが機能するかどうかはわかりません。

それが役立つことを願っています。

于 2013-01-08T01:18:08.440 に答える