could not find implicit value for parameter messages: play.api.i18n.Messages
Playframework 2.4 (Scala)でviewに@inputTextを追加した時に表示されたエラー。
Multiple annotations found at this line:
– not enough arguments for method apply: (implicit handler: views.html.helper.FieldConstructor, implicit
messages: play.api.i18n.Messages)play.twirl.api.HtmlFormat.Appendable in class inputText. Unspecified value
parameter messages.
– could not find implicit value for parameter messages: play.api.i18n.Messages
どうやらviewに「(implicit messages: Messages)」を追加しないと行けない模様。こちら変更前
1 |
@(tasks: List[Task], taskForm: Form[String]) |
変更後
1 |
@(tasks: List[Task], taskForm: Form[String])(implicit messages: Messages) |
viewにこの設定を入れるとControllerも変更する必要がある模様。追加するのはInject, I18nSupport, MessagesApi, Messages, Langのインポートと、Controllerクラスの記述を修正。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
package controllers import javax.inject.Inject import play.api.i18n.{I18nSupport, MessagesApi, Messages, Lang} import play.api.mvc._ val taskForm = Form( "label" -> nonEmptyText) class Application @Inject() (val messagesApi: MessagesApi) extends Controller with I18nSupport { def tasks = Action { Ok(views.html.index(Task.all, taskForm)) } } |
チュートリアルページには何も書かれてなかったし、どこ漁っても日本語での対応方法書いてなかったのツライ。
以下を参考にしました。