私は Ruby の初心者で、スキルを磨くためにサンプル アプリケーションをコーディングしながら言語を理解するためにこのフォーラムを使用しています。
製品とメディアの間に has many 関係を設定しようとしました。私が抱えている課題は、複数形のメディアが原因であると思われますが、トラブルシューティング方法がわかりません.
class CreateMedia < ActiveRecord::Migration
def change
create_table :media do |t|
t.string :type
t.string :alt
t.boolean :is_primary
t.string :url_tiny
t.string :url_small
t.string :url_regular
t.string :url_large
t.string :title
t.timestamps
end
end
end
class Media < ActiveRecord::Base
attr_accessible :alt, :is_primary, :title, :type, :url_large, :url_regular, :url_small, :url_tiny
belongs_to :product
end
class Product < ActiveRecord::Base
attr_accessible :assoc_product,:product_id, :merch_associations, :aux_description, :buyable, :long_description, :name, :on_special, :part_number, :release_date, :short_description, :withdraw_date, :occasion
has_and_belongs_to_many :categories
has_many :merch_associations
has_many :assoc_products, :through => :merch_associations
has_many :media
...
これを実行すると (dress_media は入力された Media オブジェクト配列であることに注意してください):
products[i].media << dress_media[m]
エラーコンソールでこれを取得します:
uninitialized constant Product::Medium
DBを調べたところ、テーブルは実際にはメディアではなくメディアと呼ばれています。だから私はそれが複数形であるべきだと思いましたよね?(このコードは rails generator から生成されました)
私が言うように、私はRailsを初めて使用するので、誰かが製品とメディアの間でこれを1対多に作成する正しい方向に向けることができれば、それは素晴らしいことですか?