0

モデルを正しく設定しているかどうかわからないので、私の考えをお見せしたいと思います。

Carに属するモデルがありCompanyます。次に、というモデルがありColorます。このDBテーブルには、すべての色(赤、青、...)が格納されています。そして、と呼ばれる4番目のモデルがありCarColorます。このモデルには、2つの列-job_idとが含まれていますcolor_id

ビューでは、訪問者がチェックボックスを使用して色を選択できるようにしたいと思います。

部分的なフォーム

= form_for @car do |f|
  .field
    = f.label :name
    = f.text_field :name
  .field
    = f.label :location
    = f.text_field :location
  .field
    = fields_for @car_colors do |cc|
      ...
  .field
    = fields_for @company do |c|
      .field
        = c.label :name
        = c.text_field :name

  .actions
    = f.submit 'Save'

モデル

class Company < ActiveRecord::Base
  has_many :cars
end
class Car < ActiveRecord::Base
  belongs_to :company

  has_many :car_colors
  has_many :c_colors, :through => :car_colors
end
class Color < ActiveRecord::Base 
  has_many :car_colors
  has_many :cars, :through => :car_colors
end
class CarColor < ActiveRecord::Base
  belongs_to :car
  belongs_to :color
end

Cars+の保存Companyはうまく機能しますが、ビューに色付きのチェックボックスを追加する方法がわかりません。

編集: コメントのスレッドに関して、私は進歩を遂げました。しかし、解決方法がわからないエラーを見つけました。

上に示したモデル構造を使用していますが、これはビューのように見えます。

- Color.order('name').each do |clr|
  = check_box_tag :c_color_ids, clr.id, @car.car_colors.include?(clr), :name => 'car[c_color_ids][]'
  = label_tag :c_color_ids, clr.name

これは私が得たエラーです:

PG::Error: ERROR:  relation "car_colors" does not exist

私は何が欠けていますか?どのように関係が存在することはできませんか?

4

1 に答える 1

0

わかりました、私はこの問題を解決するために1日を過ごしました。についてのスキームは正しいです、私の場合の問題は、car_colorsの代わりにテーブル名car_colorで移行を作成したことでし...

于 2013-03-25T10:42:18.073 に答える