gpt4 book ai didi

ruby-on-rails - 关联语法 ruby​​ on rails 复数

转载 作者:太空宇宙 更新时间:2023-11-03 17:37:40 24 4
gpt4 key购买 nike

我是 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

我查看了数据库,该表确实称为 Media,而不是 medium。所以我认为它应该是复数,对吗? (此代码由 Rails 生成器生成)

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

最佳答案

据我了解,您有一个名为“媒体”的模型。请注意,正如您在问题中提到的那样,“媒体”已经是复数形式。正确的是有一个名为“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

有时您可能想要设置或覆盖 Rails 的单数形式和复数形式。我不建议在那种特定情况下这样做,但请看一下 http://blog.thefrontiergroup.com.au/2011/06/pluralizations-and-singularizations-inflections-in-rails-3/只是想知道如何去做。

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

关于ruby-on-rails - 关联语法 ruby​​ on rails 复数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11598295/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com