Связанное автообновление модели? - PullRequest
0 голосов
/ 01 ноября 2018

Есть проблемы с автоматическим обновлением модели, кто-нибудь может подсказать почему?

Город - модель для городов, используемая в разных приложениях. Клиент - это модель, которая использует город, но не обязательна. Я пробовал разные комбинации has_one, belongs_to, FYI.

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, тот же эффект.

Теперь мы пытаемся заполнить базу данных отладочными данными:

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». Например, чтобы иметь возможность звонить Customer.all.includes(:city).

1 Ответ

0 голосов
/ 01 ноября 2018

Город - модель для городов, используемая в приложении

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...