2015-06-17 3 views
0

Когда я пытаюсь получить эпизоды из подкаста, я получаю invalid association []. Не уверен, что я делаю неправильно.Устранение неисправностей Много использует Gorm

package main 

import (
    "log" 

    "github.com/jinzhu/gorm" 
    _ "github.com/mattn/go-sqlite3" 
) 

type Podcast struct { 
    Id  int 
    Title string 
    RssUrl string `sql:"unique_index"` 
    Url  string 
    Episodes []Episode 
} 

type Episode struct { 
    Id   int 
    PodcastID int `sql:"index"` 
    Title  string 
    Url  string `sql:"unique_index"` 
    Downloaded bool 
} 

func main() { 
    db, err := gorm.Open("sqlite3", "gorm.db") 
    if err != nil { 
     log.Fatal(err) 
    } 
    db.LogMode(true) 

    db.CreateTable(&Podcast{}) 
    db.CreateTable(&Episode{}) 

    podcast := Podcast{ 
     Title: "My Podcast", 
     RssUrl: "http://example.com/feed/", 
     Url:  "http://www.example.com", 
     Episodes: []Episode{{Title: "Episode One Point Oh!", Url: "http://www.example.com/one-point-oh", Downloaded: false}}, 
    } 

    var episodes []Episode 
    db.Model(&podcast).Related(&episodes) 
} 

ответ

1

Какую версию GO и GORM вы используете? Я пытался на моей машине, и это бревно:

[2015-06-17 19:02:11] [12.00ms] CREATE TABLE "podcasts" ("id" integer,"title" varchar(255),"rss_url" varchar(255),"url" varchar(255) , PRIMARY KEY ("id")) 
[2015-06-17 19:02:11] [1.26ms] CREATE TABLE "episodes" ("id" integer,"podcast_id" integer,"title" varchar(255),"url" varchar(255),"downloaded" bool , PRIMARY KEY ("id")) 
[2015-06-17 19:02:11] [1.25ms] SELECT * FROM "episodes" WHERE ("podcast_id" = '0') 

Пожалуйста, обратите внимание, что, потому что вы не создали переменные подкаст podcast_id является 0, так что запрос не делает так много смысла.

Для того, чтобы создать подкаст, просто добавьте этот код

db.NewRecord(podcast) 
db.Create(&podcast) 

var episodes []Episode 
db.Model(&podcast).Related(&episodes) 

log.Print(episodes) 
+0

Моя версия Горм был действительно устареть. Должно быть, я раньше бегал, и я сидел там без устали, не зная. Не могли бы вы дать мне пример кода, как я должен создать переменную подкаста? Благодаря! – gregf

+0

Я обновил свой ответ с помощью некоторого примера кода;) – Alessio

+0

Выше все еще выполняет поиск podcast_id = 0 хотя? – gregf

Смежные вопросы