調査中です。ご存知の方いたら教えてください。
play & scalaで、テストコードからデータベースにデータを投稿することはできるのですが、本体からデータを投稿することができません。
下記は、問題に関係しているとおぼしきソースコード群です。
1.コンパイルエラーの内容
2.models.scala
3.controllers.scala
4.Tests.scala
エラーの内容.scala
//Compilation error
//The file /app/controllers.scala could not be compiled. Error raised is : not found: value Reserve
//In /app/controllers.scala (around line 12)
object Application extends Controller {
import views.Application._
def index = html.index()
def reserve = {
↓Reserve.create(Reserve(NotAssigned, "tarou@gmail.com", "テスト太郎", "201205101111", "test dome2"))
Json("{message:'hey'}")
}
}
project/app/models.scala
package models
import play.db.anorm._
import play.db.anorm.SqlParser._
import play.db.anorm.defaults._
//Reserve
case class Reserve(
id:Pk[Long],
user_id:String, user_name:String, date_time:String, place:String
)
object Reserve extends Magic[Reserve]
project/apps/controllers.scala
package controllers
import play._
import play.mvc._
import models._
import play.db.anorm._
object Application extends Controller {
import views.Application._
def index = html.index()
def reserve = Json("{message:'hey'}")
}
project/test/Tests.scala
import play._
import play.test._
import org.scalatest._
import org.scalatest.junit._
import org.scalatest.matchers._
class BasicTests extends UnitFlatSpec with ShouldMatchers {
import models._
import play.db.anorm._
it should "create and retrieve a Reserve" in {
Reserve.create(Reserve(NotAssigned, "tarou@gmail.com", "テスト太郎", "201205101111", "test dome2"))
val tarou = Reserve.find(
"user_id={user_id}").on("user_id" -> "tarou@gmail.com"
).first()
tarou should not be (None)
tarou.get.user_name should be ("テスト太郎")
}
}
参考文献
チュートリアル
http://playscalaja.appspot.com/documentation/0.9/home
上記では、"import models._を忘れないように"という記述しかありません。
上記チュートリアルの完成形とおぼしきソース
https://github.com/FabioBatSilva/scala-play-yabe
git cloneしてDB構築しましたが、ルーティングに関する下記のエラーが出ました。
ソースコードを読んだところ、import models._以外に特別オブジェクトを読み込んでいるとおぼしきソースはありませんでした。
Not found
Application.index action not found
These routes have been tried, in this order :