Подключитесь к этому сообщению об ошибке во время разработки сегодня: SQLite3::BusyException: database is locked:
У меня две модели:
- В подкастах есть много треков
- Треки принадлежат подкастам.
- Файлы подкастов размещаются на mixcloud.
Чтобы создать подкаст:
- Пользователь отправляет URL-адрес подкаста на mixcloud
- rails app захватывает json-канал, связанный с URL-адресом
- json используется для установки атрибутов (заголовок, изображение и т.д.) в новом объекте Podcast
Я пытаюсь заставить мое приложение rails использовать тот факт, что в json feed также указаны имена (и исполнители) треков, принадлежащих этому подкасту.
Я думал, что следующий метод before_validation автоматически создаст все связанные треки, когда мы создадим новый Podcast.
class Podcast < ActiveRecord::Base
attr_accessible :mixcloud_url, :lots, :of, :other, :attrs
has_many :tracks
before_validation :create_tracks
def create_tracks
json = Hashie::Mash.new HTTParty.get(self.json_url)
json.sections.each do |section|
if section.section_type=="track"
Track.create(:name=>section.track.name, :podcast_id=>self.id)
end
end
end
end
Как я могу обойти это? Похоже, что рельсы (или sqlite3) мне не нравятся, создавая таким образом новые экземпляры связанной модели. Как еще я могу это сделать? Я подозреваю, что это проблема с рельсами, как sqlite3. Я могу опубликовать больше кода, если он поможет.