Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.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 铁路HABTM数量_Ruby On Rails_Activerecord_Ruby On Rails 4_Has And Belongs To Many - Fatal编程技术网

Ruby on rails 铁路HABTM数量

Ruby on rails 铁路HABTM数量,ruby-on-rails,activerecord,ruby-on-rails-4,has-and-belongs-to-many,Ruby On Rails,Activerecord,Ruby On Rails 4,Has And Belongs To Many,我正在开发一个订单系统 Models: Orders Products OrderProducts 每个产品都有自己的数量字段,告诉用户有多少 我想能够订购多个相同的产品和多个产品。哈伯特姆 class Order < ActiveRecord::Base has_and_belongs_to_many :products end class Product < ActiveRecord::Base has_and_belongs_to_many

我正在开发一个订单系统

Models:
   Orders
   Products
   OrderProducts
每个产品都有自己的数量字段,告诉用户有多少

我想能够订购多个相同的产品和多个产品。哈伯特姆

class Order < ActiveRecord::Base
    has_and_belongs_to_many :products
end

class Product < ActiveRecord::Base
    has_and_belongs_to_many :categories
    has_and_belongs_to_many :orders
end

class OrdersProducts < ActiveRecord::Base
    belongs_to :product
    belongs_to :order
    validates_presence_of :q
end
类顺序
我按照本文进行了设置->

但问题是,在控制台中执行此操作时,我无法访问“q”字段

>> product = Product.create
>> order = Order.create
>> orders_products = OrdersProducts.create :product => product, :order => order, :q => 10

>> order.products.collect{|each| each.q}
=> NoMethodError: undefined method `q' for #<...
>product=product.create
>>order=order.create
>>orders\u products=OrdersProducts.create:product=>product,:order=>order,:q=>10
>>order.products.collect{| each | each.q}

=>NoMethodError:undefined方法'q'for#我将用has_many:through关系替换您的HABTM关系。当您向联接模型添加其他属性时,在这种情况下,您希望添加应该使用的数量has\u many:through,而不是has\u,并且\u属于\u many

编辑:您可以在关于关联的railsguide中阅读更多关于has_many:到和has_和has_属于_many之间的区别:


在Rails 3.1中删除了访问HABTM联接表中附加属性的功能,以支持
中所述的多个:到