2016-04-04 2 views
2

Я новичок на Play в Scala, и я получаю эту ошибку, когда я хочу, чтобы открыть мое приложение:Играть Scala: класс должен быть абстрактным

class ElevesController needs to be abstract, since method messagesApi in trait I18nSupport of type => play.api.i18n.MessagesApi is not defined 

EleveController.scala

package controllers 

import javax.inject.Inject 
import play.api.Logger 
import play.api.data.Form 
import play.api.data.Forms._ 
import play.api.i18n.{Messages, I18nSupport, MessagesApi} 
import play.api.mvc.{Action, Controller} 
import views.html 
import scala.concurrent.Future 
import models.Eleve 

class ElevesController @Inject() extends Controller with I18nSupport { 


    def viewEleves = Action {implicit request => 
    Ok(html.viewseleves(Eleve.findAll)) 
    } 
} 

I не знаю, как это исправить

Edit: исправить это, я просто нужно добавить: «(значение messagesApi: messagesApi)» в этой строке:

class ElevesController @Inject()(val messagesApi: MessagesApi) extends Controller with I18nSupport { 
+0

да, по какой-то причине мы были с помощью '@Inject() (messagesApi: MessagesApi)' 'без val' который компилирует и все, пока не нужно Примеси! –

ответ

2

Это должно сработать. Просто измените свое действие и т.д.

https://playframework.com/documentation/2.4.0-RC2/api/scala/index.html#play.api.i18n.I18nSupport

   package controllers 

       import javax.inject._ 
       import play.api._ 


       import javax.inject.Inject 
       import play.api.Logger 
       import play.api.data.Form 
       import play.api.data.Forms._ 
       import play.api.mvc._ 
       import views.html 
       import scala.concurrent.Future 
       import play.api.i18n._ 

        @Inject() 
       class ElevesController (val messagesApi: MessagesApi) extends Controller with I18nSupport { 

        val action = Action { implicit request => 
        Ok("Ok") // Uses the client???s preferred language 
         } 

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