2017-08-09 11 views
0

私はPlay2 Frameworkアプリケーションを持っていて、IntelliJ Ideaで完全なキャッシュを無効にして再起動した後に再コンパイルすると問題が発生します。私が得るエラーは次のとおりです:Scalaでクラスが見つかりませんPlay Frameworkのテンプレート

[warn] Class models.AgeGroup not found - continuing with a stub. 
[error] /Users/xxx/app/views/registrations/selectPrinterView.scala.html:13: not found: value AgeGroup 
[error]    @for((k, v) <- AgeGroup.optionsForGroups()) { 
[error]       ^
[error] /Users/xxx/app/views/registrations/selectPrinterView.scala.html:14: overloaded method value apply with alternatives: 
[error] (keys: Seq[String],args: Any*)(implicit messages: play.api.i18n.Messages)String <and> 
[error] (key: String,args: Any*)(implicit messages: play.api.i18n.Messages)String 
[error] cannot be applied to (Any) 
[error]     <option value="@k">@Messages(v)</option> 
[error] 

私はこれまでに持っていたと思いますが、それを修正する方法は覚えていません。 @Messagesに関する2番目のエラーは、関連している可能性があります。

これは私のテンプレートコードです:

<select name="ageGroup"> 
    @for((k, v) <- AgeGroup.optionsForGroups()) { 
     <option value="@k">@Messages(v)</option> 
    } 
    </select> 

私はアプリケーション/モデル/ AgeGroup下のクラスAgeGroupを使用します。

package models; 

import play.i18n.Messages; 

import java.util.LinkedHashMap; 
import java.util.Map; 

/** 
* Created on 25/11/2015. 
*/ 
public enum AgeGroup { 
    U18, 
    O18, 
    BOTH, 
    SPECIAL; 

    public static Map<String, String> optionsForGroups() { 
     LinkedHashMap<String, String> vals = new LinkedHashMap<>(); 
     vals.put(U18.name(), Messages.get(U18.name())); 
     vals.put(O18.name(), Messages.get(O18.name())); 
     vals.put(BOTH.name(), Messages.get(BOTH.name())); 
     return vals; 
    } 

    public static Map<String, String> optionsForRooms() { 
     LinkedHashMap<String, String> vals = new LinkedHashMap<>(); 
     vals.put(U18.name(), Messages.get(U18.name())); 
     vals.put(O18.name(), Messages.get(O18.name())); 
     vals.put(SPECIAL.name(), Messages.get(SPECIAL.name())); 
     return vals; 
    } 
} 

これは、2年間の私のために働いたが、今では動作を停止2時間を費やしている理由を理解することができません(コード自体に何も変更を加えていない)。だから、どんな助けも本当にありがたいです。

+0

テンプレートの 'import model.AgeGroup'にする必要があります。 – cchantep

+0

'オブジェクトAgeGroupはパッケージモデルのメンバーではありません。'というメッセージが表示されます。私はそれがすべての時間を働いた後なぜ機能しないのか分かりません。それはビルドに含まれていないのと同様に –

答えて

1

私はコマンドライン 'Activator'を使用し、そこでクリーンアップしてコンパイルしました。今では何らかの理由でアクチベータとIDEAの両方で再び動作するようです。

関連する問題