ngOnInit() {
this.userTyping()
}
userTyping() {
let searchTerm = this.form.get('query');
searchTerm.valueChanges.pipe().debounceTime(1000)
.subscribe(() => this.searchForUser());
}
Одна из проблем возникает, если вы используете предоставленные
rake db:reset
и
rake db:schema:load
задач, которые используют schema.rb
в качестве основы для настройки вашей базы данных. Таким образом, никакие данные не загружаются, и вы застряли.
В Agile Web Development с Rails, третье издание , который вы должны получить (если книга по Ruby - это книга «Кирка», должна ли это быть Книга «Гамак», кстати?), Если вы еще этого не сделали, DHH говорит:
... миграция на самом деле не предназначена для нести начальные данные. Они слишком временны в природе делать это надежно. Миграции здесь, чтобы вы могли одна версия схемы к другой, не создавать свежую схему из нуля - у нас есть файл db / schema.rb для этого.
Итак, как только вы на самом деле начать работать с реальным приложением, люди не будут бегать рано миграции, когда они создали применение. Они начнут с любая версия хранится в db / schema.rb и игнорировать все эти предыдущие миграции. Это значит, что любые данные, созданные миграциями никогда не попадать в базу данных, поэтому на это нельзя полагаться.
Есть много альтернативные способы иметь больше постоянные начальные данные. Самый простой вероятно, просто чтобы создать новый файл в db / seed.rb, который содержит те Product.create звонки, которые сделают настроить. Этот файл может быть вызван после граблей db: schema: load создает исходная схема.
часто миграции подходят лучше всего и не могут быть заменены отдельным скриптом. Представьте себе следующий сценарий: приложение уже используется с живыми данными; столбец кода содержит код в форме «name-zip_code» (да, я знаю, что это некрасиво, но это случается), и вы хотите разделить его на два столбца, «name» и «zip_code», избавляясь от « code '.
def self.up
add_column :companies, :zip_code, :integer
add_column :companies, :name, :string
Company.reset_column_information
Company.find(:all).each do |company|
name, zip_code = company.code.split('-')
company.update_attributes(:name => name, :zip_code => zip_code)
end
remove_column :companies, :code
end
в этом случае столбец code не может быть удален до передачи данных в столбцы name и zip code.
Когда мне нужно изменить некоторые данные в базе данных, я создам задачу Rake, которая запускает некоторую библиотечную функцию, чтобы сделать работа. Таким образом, манипулирование данными будет повторяться и, если потребуется, также может быть запущено из миграции.