前提・実現したいこと
scala(Play Framework)で簡単な投稿機能を作っています。
その実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
missing argument list for method apply in object add Unapplied methods are only converted to functions when a function type is expected. You can make this conversion explicit by writing `apply _` or `apply(_,_)(_)` instead of `apply`.
該当のソースコード
HomeController
131 )) 232 } 333 434 def add() = Action {implicit request => 535 Ok(views.html.add( 636 "フォームを記入してください。", 737 form 838 )) 939 }
関連するソースコード
HomeController
1package controllers 2 3import java.sql._ 4import javax.inject._ 5import play.api._ 6import play.api.mvc._ 7import play.api.data._ 8import play.api.data.Forms._ 9import play.api.db._ 10import PersonForm._ 11 12@Singleton 13class HomeController @Inject()(db: Database, cc: MessagesControllerComponents) extends MessagesAbstractController(cc) { 14 def index() = Action {implicit request => 15 var msg = "database record:<br><ul>" 16 try { 17 db.withConnection { conn => 18 val stmt = conn.createStatement 19 val rs = stmt.executeQuery("SELECT * from people") 20 while (rs.next) { 21 msg += "<li>" + rs.getInt("id") + ":" + rs.getString("name") + "</li>" 22 } 23 msg += "</ul>" 24 } 25 } catch { 26 case e:SQLException => 27 msg = "<li>no record...</li>" 28 } 29 Ok(views.html.index( 30 msg 31 )) 32 } 33 34 def add() = Action {implicit request => 35 Ok(views.html.add( 36 "フォームを記入してください。", 37 form 38 )) 39 } 40 41 def create() = Action { implicit request => 42 val formdata = form.bindFromRequest 43 val data = formdata.get 44 try 45 db.withConnection { conn => 46 val ps = conn.prepareStatement( 47 "insert into people values (default, ?, ?, ?)") 48 ps.setString(1, data.name) 49 ps.setString(2, data.mail) 50 ps.setString(3, data.tel) 51 ps.executeUpdate 52 } 53 catch { 54 case e: SQLException => 55 Ok(views.html.add( 56 "フォームに入力してください。", 57 form 58 )) 59 } 60 Redirect(routes.HomeController.index) 61 } 62}
PersonForm
1package controllers 2 3object PersonForm { 4 import play.api.data._ 5 import play.api.data.Forms._ 6 7 case class Data(name: String, mail: String, tel: String) 8 9 val form = Form( 10 mapping( 11 "name" -> text, 12 "mail" -> text, 13 "tel" -> text 14 )(Data.apply)(Data.unapply) 15 ) 16}
試したこと
applyをapply _
やapply(_,_)(_)
に変えたりしましたがエラーは治りませんでした。
補足情報(FW/ツールのバージョンなど)
IntelliJ IDEAで開発を行っております。
よろしくお願いします。
あなたの回答
tips
プレビュー