Bootstrap не сохраняет сущности - PullRequest
2 голосов
/ 02 января 2012

Я совершенно новичок в Grails и делаю урок Скотта Дэвиса и Джейсона Рудольфа "Начало работы со Grails Second Edition".

Когда я настраиваю BootStrap, это похоже на grailsне сохраняет сущности, и я не вижу их в своем приложении.Я уже пробовал сохранить (failOnError: true), но он компилируется и сохраняет без ошибок.

Вот код BootStrap.groovy

package racetrack
import grails.util.GrailsUtil

class BootStrap {
  def init = { servletContext ->
    switch(GrailsUtil.environment){
     case "development":

       def jane = new Runner(
                  firstName:"Jane",
                  lastName:"Doe",
                  dateOfBirth:(new Date() - 365*30),
                  gender:"F",
                  address:"123 Main St",
                  city:"Goose",
                  state:"NC",
                  zipcode:"12345",
                  email:"jane@whereever.com"
                  )
       jane.save()
       if(jane.hasErrors()){
         println jane.errors
       }

       def trot = new Race(
                  name:"Turkey Trot",
                  startDate:(new Date() + 90),
                  city:"Duck",
                  state:"NC",
                  distance:5.0,
                  cost:20.0,
                  maxRunners:350
                  )
       trot.save()
       if(trot.hasErrors()){
         println trot.errors
       }

      def reg = new Registration(
                paid:false,
                runner:jane,
                race:trot
                )
      reg.save()
      if(reg.hasErrors()){
        println reg.errors
      }

      break
    case "production" : break
   }
  }
  def destroy = { }
}

Большое спасибо

Ответы [ 4 ]

4 голосов
/ 02 января 2012

вы в режиме разработки?

Возможно, вам нужно добавить оператор log.debug или println, чтобы увидеть, выполняется ли ваш код.

и вы уже пробовали .save(flush:true, failOnError:true)?флеш может помочь

2 голосов
/ 02 января 2012

Используйте перечисления вместо строк.Перечисления лучше всего подходят в сценарии переключения, и вы можете избежать ошибок.Может быть, GrailsUtil.environment возвращает DEVELOPMENT, а не development?Вместо:

case "development"

используйте

case Environment.DEVELOPMENT
0 голосов
/ 06 декабря 2014

Несмотря на то, что я старую, я подумал, что это может помочь, если я напишу что-то, что только что нашел:)

if (GrailsUtil.developmentEnv){
    // do dev stuff
} 
else {
    // do other stuff
}
0 голосов
/ 30 декабря 2012

Использование перечисления grails.util.Environment не работает как есть. Поскольку grails.util.GrailsUtil.environment возвращает строку, а не Environment.

Вы более или менее вынуждены использовать строки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...