Slick2.1にて、ManyToMany(多対多)を実現する方法例 今回の実装では、User *---* Project というリレーションを実現します。 val user = Users.findById(1).get val projects = user.projects // SQL走る val projects2 = user.projects // ここでは、キャッシュされた結果が返るためSQLは走らない 上記のように、アクセス可能で、初期アクセス時のみにSQLが発行されるような使用としています。 ■Dao.scala package models import scala.slick.lifted.TableQuery private[models] trait DAO { val Users = TableQuery[Users] val
認証のFilter処理で、TraitとActionでデータを渡す方法を実装 http://play-gf.blogspot.jp/2015/03/actionfilter.html の続編的記事です ■ AuthTrait.scala package controllers.components.actions import models._ import play.api.data.Form import play.api.data.Forms._ import play.api.db.slick._ import play.api.mvc._ import play.api.Play.current import scala.collection.mutable.HashMap import scala.concurrent.Future /** * Created
以下、メソッドを関数オブジェクトに変換したり、カリーかしたりのメモ object Test { def main(args: Array[String]){ var add2 = add _ // メソッドを関数オブジェクトに変換 var addCurried = add2.curried // 関数オブジェクトをカリー化 val addCurried2 = (add _).curried // こんな風にまとめてもOK print(add(2,3)) print(add2(2,3)) print(addCurried(2)(3)) print(addCurried2(2)(3)) } def add(a:Int, b:Int) = a + b }
ActionのFilter処理を実行するためのTips。 ドキュメントだと、ActionsComposition のこと↓ https://www.playframework.com/documentation/2.3.x/ScalaActionsComposition 今回、Filterの処理内容をTraitとして実装する方法としました。 また、DBアクセスにSlickを使用し、FilterからもDBアクセスできるような実装となっております。 AuthTrait (Filter実装部) package controllers.components.actions import models.Users import play.api.db.slick._ import play.api.mvc.{Result, Request, Action} import play.api.Play.current import
基本的な使い方はドキュメントを見るのが早いです。 日本語ドキュメントもあります。 次回からは、自分の躓いたところや、Tipsみたいなのを紹介していきます

インストールが完了して、プログラムも動いてブラウザで見れるようになったので、あとはデータベース周りをセッティングします。 Play framework 2.0 では、デフォルトでH2 databaseを使用します。 H2 databaseには、ブラウザ上で使用出来る管理画面が用意されているので、それを利用するところまで解説をします。 まず、 conf/application.conf を開き、以下をコメントアウトします。 db.default.driver=org.h2.Driver db.default.url="jdbc:h2:mem:play" db.default.user= db.default.password= そして http://~:9000/ に一度アクセスすると、play が h2dbにアクセスし、ホームディレクトリに .h2.server.properties

今回インストールするバージョンは 2.0.4 です。 ① http://www.playframework.org/ より、ソースコードをダウンロードして解凍 # wget http://download.playframework.org/releases/play-2.0.4.zip # unzip play-2.0.4.zip # mv play-2.0.4 PLAY_HOME ② playのディレクトリへ移動し、playコマンドでアプリケーション作成 # cd [PLAY_HOME] # ./play new アプリ名 ③ コンパイルと起動 # cd [PLAY_HOME]/アプリ名 # ../play run これで、http://~~:9000/ にアクセスすればOKです。welcomeページが見れれば成功。 ちなみにwelcomeページはこんなの。 また、コンソールモードも存在する。 # ./play