0

私は「Grails:クイックスタートガイド」という本を読んでいて、問題が発生しました。この本では、Blurbプラグインをインストールするように求められていますが、これは機能しているようですが、ドメインクラスであるかのように使用し、既存のコントローラーを使用すると述べています。コントローラに追加するコードは次のようになります

def blurb = Blurb.findByName("custom_${event.id}" )
if (!blurb){
    blurb = new Blurb(name:"custom_${event.id}" , content:"" ).save()
}

これを行うと、IDEと実行出力で同じエラーが発生します

'クラスの宣伝文句を解決できません'そして私は特にこの行に向けられていますblurb = new Blurb(name:"custom_${event.id}" , content:"" ).save()

誰かが何がうまくいかないのか教えてもらえますか?プラグインが正しくインストールされていると想定しています。これは、プラグインのコントローラー/アクションに直接アクセスしようとするとプラグインが提供するビューが正しくレンダリングされるためです。

ありがとう!

-参考までに、STS /Grails1.3.7を使用しています。


更新2011.05.127:45AM CST

Burtが示すようにパッケージに関連している場合にプロジェクトがどのようにレイアウトされるかを示すために、STSインターフェイスからプロジェクトを示すスクリーンショットを添付しました。ただし、問題は、importステートメントをどのように処理するかわからないため、スクリーンショットが役立つ可能性があることです。

ダッシュボードコントローラーの現在のコードは次のとおりです。

package tekdays

class DashboardController {
...
}

Burtの提案に従って次の行を追加しようとしましたが、明らかに正しくありません

package tekdays
package my.package  <--unexpected token: package

class DashboardController {

tekdaysとdefaultを変更してみましたが、どちらも同じ結果になりました。

私はそれを間違っていますか?

ありがとう!

Grailsのスクリーンショット

4

1 に答える 1

0

Blurbクラスはデフォルトのパッケージに含まれているため、コントローラーがパッケージに含まれている場合は、Groovyトリックを使用してアクセスする必要があります。

package my.package

import Blurb as Blurb

class MyController {

   def action = {
      def blurb = Blurb.findByName("custom_${event.id}" )
      if (!blurb) {
         blurb = new Blurb(name:"custom_${event.id}" , content:"" ).save()
      }
   }
}
于 2011-05-12T02:19:48.920 に答える