Неявный параметр вращения: сообщения о параметрах с неопределенным значением

Я пытаюсь использовать интернационализацию в шаблонах Twirl. Я следовал этому руководству: https://stackoverflow.com/a/30800825/1567737

У меня проблемы с implicit messages: Messages. Я сократил свою настройку до минимума, при котором возникает ошибка:

TestController
import javax.inject.Inject
import play.api.i18n.{I18nSupport, MessagesApi}
import play.api.mvc.{Action, Controller}

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

  def index = Action {
    Ok(views.html.test.render())
  }

}
test.scala.html
@()(implicit messages: Messages)

Я также добавил routesGenerator := InjectedRoutesGenerator в свой build.sbt.

Этого должно быть достаточно в соответствии с документами и руководством, на которое я ссылался выше. Тем не менее я получаю следующую ошибку времени компиляции:

[error] app/controllers/TestController.scala:11: not enough arguments for method render: (messages: play.api.i18n.Messages)play.twirl.api.HtmlFormat.Appendable.
[error] Unspecified value parameter messages.
[error]     Ok(views.html.test.render())
  • Игровая версия: 2.5.9
  • Версия SBT: 0.13.11
  • Скала версия: 2.11.7

person AmazingDreams    schedule 10.11.2016    source источник


Ответы (1)


Ну, очевидно, неявные параметры работают только с методом apply. И не тогда, когда вы явно вызываете render.

Ok(views.html.test.render())

Должно быть

Ok(views.html.test())

person AmazingDreams    schedule 10.11.2016