Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 关联语法ruby on rails复数_Ruby On Rails_Ruby_Ruby On Rails 3_Ruby On Rails 3.1 - Fatal编程技术网

Ruby on rails 关联语法ruby on rails复数

Ruby on rails 关联语法ruby on rails复数,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.1,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.1,我是Ruby的新手,只是利用这个论坛来帮助理解Ruby语言,同时编写一个示例应用程序来磨练我的技能 我试图在产品和媒体之间建立一种多方面的关系。我怀疑我面临的挑战是因为复数形式的媒体,但不知道如何解决它 class CreateMedia < ActiveRecord::Migration def change create_table :media do |t| t.string :type t.string :alt t.boolean

我是Ruby的新手,只是利用这个论坛来帮助理解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
 ...
我查看了数据库,发现这个表实际上被称为Media,而不是Media。所以我认为它应该是复数形式,对吗?(此代码由rails生成器生成)


就像我说的,我是Rails的新手,所以如果有人能为我指出正确的方向,在产品和媒体之间创建一对多,那就太好了?

据我所知,您有一个名为“媒体”的模型。请注意,正如您在问题中提到的,“媒体”已经是复数形式。正确的做法是有一个名为“媒体”的模型,然后是正在处理的关系:

class Medium < ActiveRecord::Base
    attr_accessible :alt, :is_primary, :title, :type, :url_large, :url_regular,:url_small, :url_tiny
    belongs_to :product
end
class-Medium

类产品:merch\u关联
有很多:媒体
...
结束
有时你可能会想设置或覆盖Rails的奇点化和复数化,我不建议在这种情况下这样做,但请看一看如何做到这一点


请注意,如果创建一个名为“Media”的模型,数据库表将被称为“Media”。

谢谢。也许我应该学习英语而不是Ruby on Rails:)重命名为Media解决了这个问题。干杯。
uninitialized constant Product::Medium
class Medium < 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
   ...
end