私は次のように書かれた特性を持っています:
trait NewTrait {
def NewTrait(f: Request[AnyContent] => Result): Action[AnyContent] = {
Action { request =>
implicit val newTrait = new model.helper.newTrait
f(request)
}
}
}
そして、その特性を使用し、暗黙のvalnewTraitをビューに渡そうとするコントローラー:
object Test extends Controller with NewTrait {
def foo(num: Int) = NewTrait { request =>
val view = (views.html.example.partials.viewWrap)
Ok(views.html.example.examplePage(views.html.shelfPages.partials.sidebar())
}
fooでは、newTraitはスコープに含まれませんが、スコープに含めるためのベストプラクティスは何でしょうか。受信した各リクエストに固有である必要があります。foo内から暗黙のvalを再宣言すると機能しますが、コントローラー内で毎回その宣言を繰り返す必要があり、トレイトでそれを隠すことができれば、コードははるかにきれいに見えます。トレイトの暗黙の値をコントローラーに渡す方法はありますか?