关联的模型会自动更新吗?

时间:2018-11-01 09:08:57

标签: ruby-on-rails

模型自动更新存在问题,有人可以建议原因吗?

城市是用于各种应用程序的城市模型。 客户是使用城市的模型,但不是必需的。我尝试了不同的has_onebelongs_to组合,仅供参考。

rails g model city title:string customer:references
rails g model customer title:string city:references

class City < ApplicationRecord
    belongs_to :customer, optional: true, autosave: true
end
class Customer < ApplicationRecord
    has_one :city, autosave: true
end

尝试belongs_to :city,效果相同。

现在,我们尝试使用调试数据为db播种:

City.create({title:'City 1'})
city_1 = City.find_by( id: 1 )
Customer.create(title:'Customer 1', city: city_1)

db:reset之后,我们有了具有'cities'记录的表'City 1',但列customer_id为空。我相信它应该包含“客户1”的ID。例如,为了能够呼叫Customer.all.includes(:city)

1 个答案:

答案 0 :(得分:0)

城市是城市的模型,可在整个应用程序中使用

rails g model city title:string

city.rb

class City < ApplicationRecord
  #has_many :customers
end

客户是使用城市的模型,但不是必需的。

rails g model customer title:string city:references

customer.rb(添加optional: true以实现but not necessary.

class Customer < ApplicationRecord
  belongs_to :city, optional: true 
end

查询=>

city = City.create({title:'City 1'})
city_1 = City.find_by( id: 1 )
Customer.create(title:'Customer 1', city: city_1)
#Customer.create(title:'Customer 1', city_id: city_1.id)