LoginSignup
1
1

More than 5 years have passed since last update.

Play & Scalaで"import models_"がtest環境では有効だが本体では有効でない

Last updated at Posted at 2012-04-15

調査中です。ご存知の方いたら教えてください。
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 :

1
1
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1