パターンマッチャーに追加の値を渡す方法があるかどうか知りたいです。Play Framework 2.1-RC1 と mysql を使用しています。
現在、Web アプリでユーザーの投稿を表すPostというクラスがあります。ユーザーがサイトにアクセスすると、次のメソッドを使用して DB から投稿がプルされ、ブラウザーで美しくレンダリングされます。これはすべてうまくいきます。
case class Post(id:Long, message:String)
object Post extends ObjectModel {
val simple = {
get[Long]("id") ~
get[String]("message") map {
case id~message=>
Post(
id,
message
)
}
}
def fetch(): List[Post] = {
DB.withConnection { implicit connection =>
val ret = SQL( "SELECT id, message FROM post" ).as(Post.simple *)
}
}
}
ここで、現在のユーザーが (セッションに基づいて) 投稿にスターを付けたかどうかを示す別のフィールドを Post クラスに追加したいと思います。これには追加の DB 呼び出しが必要です。理想的には、次のようなことをしたいと思います。
case class Post(id:Long, message:String, starred:Boolean)
object Post extends ObjectModel {
val simple = {
get[Long]("id") ~
get[String]("message") map {
case id~message=>
Post(
id,
message,
didStar(id, userId)
)
}
}
...
だから私の質問は、パターンマッチャーにuserId値を取得する方法です。データベースを介してデータを渡したくありません。userIdを fetch() メソッドに渡すことはできますが、パターン マッチャー内からそれを参照するにはどうすればよいでしょうか? または、これにアプローチする別の方法はありますか?