Ошибка с маршрутами

Я новичок в игре, scala и akka, и я получаю сообщение об ошибке при использовании sbt для его сборки и компиляции путем загрузки localhost в веб-браузере. Ошибка в браузере, которую я получаю:

Ссылка ошибки компиляции на маршруты неоднозначна; он дважды импортируется в одну и ту же область с помощью контроллеров импорта._ и моделей импорта._

In /Users/Louis/Documents/play_actors/app/views/form.scala.html at line 9.
5@main(Html("Calculate Pi")) {
6    
7    <h2>Calculate Pi</h2>
8    
9    @helper.form(action = routes.Pi.submit) { 
10        
11        <fieldset>
12            <legend>Pi Options</legend>

Я не уверен, почему я получаю эту ошибку. Я вызываю html-файл из Activity.scala:

package controllers

import play.api._
import play.api.mvc._

import views._

object Application extends Controller {

    def index = Action {
        Ok(html.form(Pi.optionsForm))
    }

}

Заранее спасибо.


person louis1204    schedule 24.07.2012    source источник


Ответы (1)


Play создает несколько файлов Scala, включая те, которые основаны на вашем файле routes и ваших шаблонах. Если вы заглянете в каталог target/scala.2.9.1/src_managed после того, как попытались скомпилировать свое приложение, вы должны найти пакет views.html, содержащий Scala-версии ваших шаблонов, и пакет контроллеров, содержащий Scala-представление вашего routes.

Как и ряд собственных пакетов Play, шаблоны Play автоматически импортируют все в ваши контроллеры и пакеты моделей. Это включает в себя класс маршрутов, сгенерированный из вашего файла маршрутов, что позволяет вам ссылаться на них так, как вы показали.

Я предполагаю, что у вас должен быть какой-то объект или класс в вашем пакете модели, который разделяет маршруты имен и, следовательно, создает коллизию, которую компилятор не может разрешить.

person philwills    schedule 25.07.2012
comment
СПАСИБО!!!!!1 Я смог это исправить, переместив все модели в пакет моих контроллеров, перейдя в папку с моими моделями, которую Play создал, и удалив эту папку. Спасибо за подробное объяснение и за то, что поделились своими знаниями. +1. - person louis1204; 25.07.2012