我是 Ruby 的新手,只是使用这个论坛来帮助理解该语言,同时我编写一个示例应用程序来磨练我的技能。
我试图在产品和媒体之间建立一个多方面的关系。我怀疑我遇到的挑战是因为复数形式的媒介,但不知道如何解决它。
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 是一个填充的媒体对象数组):
products[i].media << dress_media[m]
我在错误控制台中得到了这个:
uninitialized constant Product::Medium
我查看了数据库,该表确实称为媒体,而不是媒体。所以我认为它应该是复数吧?(此代码是从 rails 生成器生成的)
就像我说我是 Rails 的新手,所以如果有人能指出我在产品和媒体之间创建一对多的正确方向,那会很棒吗?