2011-04-17 4 views
0

def edit = {}には、デフォルトで何が含まれていますか?あなたは、私は本を守っていましたが、古いバージョンを使用していることが判明しました。そのため、コードの一部が機能しないのです。私はこのコードを持っています:Groovyヘルプ... def編集とコントローラについて

def edit= { 
def user = User.get(params.id) 
    if (session?.user?.id == null){ 
     flash.message = "You have to login first before editting your stuff." 
     redirect(action:'login') 
     return 
    }else if(session?.user?.id != params.id) { 
     flash.message = "You can only edit yourself." 
     redirect(action:list) 
     return 
    }else{ 
     //What should I put here? 
} 

} 

すでに機能しています。ユーザーがログインせずに編集をクリックすると、ログインページにリダイレクトされます。それ以外の場合、彼がログインした場合、彼は自分自身を編集することしか許されません。 「else」節にはどうすればいいですか?すでにユーザーが自分のものを編集できるようにすべきですが、私は自分が望むものを実装する方法を本当に知りません。 :(

誰かがデフォルトeditスニペットを共有することができればそれは素晴らしいことだ。

は、私はすべてのこれらのビット新たなんだ、そう私に簡単に行く。

答えて

0

あなたはGrailsの話をしている場合、あなたのUserControllerでのバックアップとgrails generate-controllerを試してみてください - 。それはあなたの既定のアクションの完全なテキストを与える

を私はまた、あなたがscaffolding chapterに目を通すことを示唆している - それが起動する偉大なポイントだ

+0

ありがとう...私はあなたが言ったことをした、それは働いた...しかし、まだ何かが間違っています。 –

0

デフォルト。編集アクションは次のようになります(擬似コード、それはあなたが時にコードを作成し、実際のドメインクラスに依存します):ところで

def edit = { 
    redirect(action: "show", id: params.id) 
    return true 

    def <domain>Instance = <DomainClass>.get(params.id) 
    if (!<domain>Instance) { 
     flash.message = "${message(code: 'default.not.found.message', args: [message(code: '<DomainClass>.label', default: '<DomainClass>'), params.id])}" 
     redirect(action: "list") 
    } 
    else { 
     return [<domain>Instance: <domain>Instance] 
    } 
} 

:時間のほとんどは、あなたがプログラミングによってセキュリティチェックを行う必要はありません。これらは明示的にコントローラコードで、その目的のためにGrails Spring Security Pluginをチェックしてください。

関連する問題