Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/61.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 RAILS-4-有很多_Ruby On Rails_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails RAILS-4-有很多

Ruby on rails RAILS-4-有很多,ruby-on-rails,ruby-on-rails-4,Ruby On Rails,Ruby On Rails 4,我有两种型号,卖家和客户。 我希望它是一个客户有一个卖家,很多客户可以有相同的卖家 理想情况下,我想做客户。卖家=卖家 通过“属于”关联,卖家可以属于一个客户。 虽然我的cas un客户只能有一个卖家,但我使用has_,并且_属于多个协会 # migration create_table :sellers do |t| t.string :name t.timestamps null: false end create_table :customers do |t|

我有两种型号,卖家和客户。 我希望它是一个客户有一个卖家,很多客户可以有相同的卖家

理想情况下,我想做客户。卖家=卖家 通过“属于”关联,卖家可以属于一个客户。 虽然我的cas un客户只能有一个卖家,但我使用has_,并且_属于多个协会

 # migration

 create_table :sellers do |t|
   t.string :name 
   t.timestamps null: false
 end

 create_table :customers do |t|
   t.string :name 
   t.timestamps null: false
 end

 create_table :customers_sellers, id: false do |t|
   t.belongs_to :customer, index: true
   t.belongs_to :seller, index: true
 end

 # models/seller.rb
 class Seller < ActiveRecord::Base
  has_and_belongs_to_many :customers
end

 # models/customer.rb
 class Customer < ActiveRecord::Base
  has_and_belongs_to_many :sellers
end
我有个错误

 NoMethodError: undefined method `each' for #<Seller:0x0000000582fb18>
我想在我的customer.sellers.name中也修改它


可以这样做吗?

好的,首先,
Seller.first.name=“Bud”
不更新数据库,在
Seller.first
实例上设置了
name
属性,该属性随后会丢失,因为您没有将其分配给任何变量

因此,您需要将其更改为:

Seller.first.update name: "Bud"
为了用新值更新数据库,或者(更可能)类似于:

seller = Seller.first
seller.name = "Bud"
seller.save
这是第一步,实际上是将该值保存到数据库中


第二个问题是,如果您已经从数据库中读取了
customer.sellers
,那么您的应用程序已经在内存中存储了每个
name
的值,您需要至少从数据库中重新加载第一条记录,以获得新的值:

customer.sellers.reload

现在(我假设
Seller.first
也是
customer.sellers.first
customer.sellers.first.name
将是
“Bud”
好的,所以首先,
Seller.first.name=“Bud”
不更新数据库,该
name
属性是在
Seller上设置的。首先
实例会丢失,因为您没有将其分配给任何变量

因此,您需要将其更改为:

Seller.first.update name: "Bud"
为了用新值更新数据库,或者(更可能)类似于:

seller = Seller.first
seller.name = "Bud"
seller.save
这是第一步,实际上是将该值保存到数据库中


第二个问题是,如果您已经从数据库中读取了
customer.sellers
,那么您的应用程序已经在内存中存储了每个
name
的值,您需要至少从数据库中重新加载第一条记录,以获得新的值:

customer.sellers.reload

现在(我假设
Seller.first
也是
customer.sellers.first
customer.sellers.first.name
将是
“Bud”

谢谢你的工作;)!但我仍然不能“customer.sellers=seller”,这对我的工作并不重要,但我不明白为什么。
customer.sellers
是一个集合,而您正试图为该集合指定一个
卖家。您可以分配给集合,但必须分配
对象
,复数形式很重要,您需要为集合分配一个集合(一个数组将起作用)。谢谢它的作用;)!但我仍然不能“customer.sellers=seller”,这对我的工作并不重要,但我不明白为什么。
customer.sellers
是一个集合,而您正试图为该集合指定一个
卖家。您可以分配给集合,但必须将
对象
分配给它,复数形式很重要,您需要为集合分配一个集合(数组将起作用)。