grails
  • groovy
  • 2011-08-17 10 views 0 likes 
    0

    この質問は、hereの続きです。ビューからコントローラへのGrailsロジックの移動

    以下のコードは私の意見の1つで、正常に動作しますが、このコードをコントローラに移動するのは難しいです。私のパッケージとクラスが以下のコードから明らかでない場合は、前の質問を見て、どのように配置されているかを見てください。

    <g:set var="roleAdmin" value='${org.me.example.userrole.Role.findByAuthority("ROLE_ADMIN")}' /> 
    <g:set var="roleOfficeProfessional" value='${org.me.example.userrole.Role.findByAuthority("ROLE_OFFICE_PROFESSIONAL")}' /> 
    <g:set var="roleDriver" value='${org.me.example.userrole.Role.findByAuthority("ROLE_DRIVER")}' /> 
    <g:select name="loggedBy.id" from="${org.me.example.userrole.UserRole.findAllByRoleInList([roleAdmin, roleOfficeProfessional, roleDriver]).user}" optionKey="id" value="${loadInstance?.loggedBy?.id}" /> 
    

    それは私の一部の基本的な誤解かもしれないが、私は私が私の見解で動作するように私のコントローラで行われている方法のいずれかを、Grailsのが作成した唯一の方法(すなわちlistcreateを取得することはできません、delete,editなど)が動作します。いかなる助言/勧告も役立つでしょう。

    答えて

    2

    の値の属性は、コントローラのメソッド/アクションに由来しません。それらは、一般に、要求オブジェクトから来ます。私はこれを正しく行うには、あなたの他のスレッドにあなたのコードを与えたが、ここでは、再びもう少し詳しいです...

    class SomeController { 
    
        def show = { 
        def loadInstance = whateverYouGetItFrom 
        def users = UserRole.findAllByRoleInList([roleAdmin, roleOfficeProfessional, roleDriver]).user 
        [loadInstance:loadInstance,users:users] 
        } 
    } 
    

    そして、あなたは

    <g:select name="loggedBy.id" from="${users}" optionKey="id" value="${loadInstance?.loggedBy?.id}" /> 
    
    が含まれているshow.gspを持っているでしょう

    あなたの質問を誤解している場合は、私たちに詳細を教えてください。

    +0

    グレッグの答えはスポット上にあります。私が追加する唯一の明確化は、[loadInstance:loadInstance、users:user]がコントローラからビューにデータを渡す際の重要な部分であることに注意することです。コード行は、マップをビューに戻す、または渡すことを表します。マップ内の項目の内容をgspの$ {}テンプレート構文で使用できるようにします。申し訳ありませんが、これが繰り返しか過度に単純化された説明ですが、そのように見えるのは混乱が起きた場所だったようです。 –

    +0

    @Bill Pfeifferいいえ、説明は大歓迎です。私は暇な時間にGrails/Groovyを学び、2ヶ月の休憩をとり、たくさんのことを忘れました。グレッグの答えは私に顔を揃えました。私のビューの 'optionKey =" id "引数はエラーを生成し、' value'引数が実際に何をしているのかまだ少しはっきりしています...しかし、私はそれらの両方を読むことができます。私の唯一の他の問題は、ビューからコントローラーに引数を渡すにはどうすればいいですか?私はコントローラの '[key:value]'部分を理解していますが、 'from =" $ {users} "'を使うときにコントローラに引数を渡すにはどうしたらいいですか? – ubiquibacon

    +0

    SELECTを生成するために、ビューからコントローラに何かを渡す必要があるのはなぜですか? – Gregg

    関連する問題