2017-05-15 9 views
0

私が作成したルートで逆引き参照をしようとしています。 ルートは私のroutesファイルでそのように定義されています私のカスタムルートを表示するためにプレイフレームワーク内のルートオブジェクトを取得できません

POST /login   controllers.Web.Application.authenticate 

私は私が作った形でそれの逆を実行しようとする場合しかし、私はそれを見つけるように見えることはできません。私はこのような逆行うにしようとしています:

play.sbt.PlayExceptions:

@helper.form(action = routes.login())) { 
    rest of the form here... 
} 

ただし、ログインがのIntelliJに赤で表示されますが、プログラムを実行しようとしたとき、私は次のエラーを取得します$ CompilationException:コンパイルエラー[値のログインはオブジェクトcontrollers.routesのメンバーではありません]

私はプロジェクトを何度も再コンパイルしようとしましたが、

答えて

1

編集:私たちはコメントで発見したよう

、逆のルータは、サブパッケージを好きにいないようです。あなたはあなたのパッケージのWeb一部を削除し、レベルをすべてを移動し、その後、このようにコードを変更する必要があります。

@helper.form(action = routes.Application.authenticate())) { 
    rest of the form here... 
} 

オリジナルの答え:

あなたはコントローラ機能を参照する必要がありますそれはこのようになるはずはなく、ルートの名前、よう:

@helper.form(action = routes.Web.Application.authenticate())) { 
    rest of the form here... 
} 
+0

それでも動作しません。私はあなたが示したようにそれを使用しようとしただけでなく、ルートとWebの間にコントローラーを追加しましたが、どちらも機能しませんでした。どちらの場合も、ルートの直後の要素はエディタで赤で、エラーを返します。value Webはオブジェクトcontrollers.routesのメンバーではありません。 – Etienne

+0

@Etienne '.Web'パーツを取り出してみてください。あなたのアプリケーションコントローラ用のパッケージは何ですか? – Tyler

+0

私は.Webの部分も削除しようとしましたが、アプリケーションの場合を除いて同じエラーです。 アプリケーションコントローラのパッケージ宣言は:controllers.Web – Etienne

0

ので、興味深いのは、最近起こったと私は、元の列strを指すようにする方法を見つけました適切に拭いてください。むしろ書き込みよりも、これを行うには:タイラーは、私が書くことになっていたで示唆したように

routes.Web.Application.authenticate() 

:すべて完全に反直感的であるが、それは私が元のパッケージを使用することができます

Web.routes.Application.authenticate() 

構造。

関連する問題