私はgrailsを初めて使ったので、コントローラ間でモデルをどのように渡すことができるのか答えを見つけることができませんでした。(Resolved、Bypassed)Grails:他のコントローラのビューにモデルを渡す方法は?
私は、潜在的なクライアントビューとクライアントの要求のビューがあることを、このような状況を持っています。
ユーザーが潜在的なクライアント情報から、クライアントの要求を作成したいということも可能です。私はモデルを埋めることについて考え
はClientRequestControllerのcreateアクションにPotentialClientControllerとチェーンのincideのtransormアクションオブジェクト。ユーザーが保存する前にデータを編集する機能を持っていれば、保存しないことを決めるのが良いでしょう。だから私はいっぱいに保存ClientRequestインスタンス内アクションを変換するには、それをに転送したい別のコントローラのビューを作成します。そして、私は内のparamsを処理したくないアクションを作成します。もちろん、私はすでに存在しないオブジェクトのIDを渡すことができますし、アクションを作成内部それらを使用しますが、私はモデルに合格することがsimplierでしょう。
正しい方法は何ですか?
以下は、私が何をしようとしているのサンプルです: は、潜在的なクライアントコントローラのアクションを変換:
def transform = {
def requestor = User.getByUsername(principal.username)
def potentialClientInstance = PotentialClient.get(params.id)
boolean hasEnoughtRights = checkRights()
if(!hasEnoughtRights) {
redirect(controller: 'login', action: 'denied')
}
ClientRequest clientRequestInstance = new ClientRequest()
ContactPerson contactPersonInstance = ContactPerson.get(potentialClientInstance?.contactPerson?.id)
Contact mobilePhoneContactInstance
Contact workPhoneContactInstance
Contact homePhoneContactInstance
Contact organizationPhoneContactInstance
Contact emailContactInstance
...........................
clientRequestInstance?.ownedBroker = requestor
clientRequestInstance?.organization = Organization.get(potentialClientInstance?.organization?.id)
clientRequestInstance?.brand = new Brand(name: clientRequestInstance?.organization?.getBrandsString())
clientRequestInstance?.estateType = EstateTypeDic.get(potentialClientInstance?.estateType?.id)
clientRequestInstance?.footageFrom = potentialClientInstance?.footageFrom
clientRequestInstance?.footageTo = potentialClientInstance?.footageTo
clientRequestInstance?.priceFrom = potentialClientInstance?.priceFrom
clientRequestInstance?.priceTo = potentialClientInstance?.priceTo
clientRequestInstance?.currency = CurrencyDic.get(potentialClientInstance?.currency?.id)
clientRequestInstance?.requestComment = Comment.get(potentialClientInstance?.comment?.id)
clientRequestInstance?.comments?.setComments(potentialClientInstance?.comments)
clientRequestInstance?.district = District.get(potentialClientInstance?.address?.district)
clientRequestInstance?.addedBy = requestor
clientRequestInstance?.modifiedBy = requestor
chain (controller: 'clientRequest', action: 'create', model: [clientRequestInstance:clientRequestInstance, contactPersonInstance:contactPersonInstance, mobilePhoneContactInstance:mobilePhoneContactInstance, workPhoneContactInstance:workPhoneContactInstance, homePhoneContactInstance:homePhoneContactInstance, organizationPhoneContactInstance:organizationPhoneContactInstance, emailContactInstance:emailContactInstance,])
}
クライアント要求コントローラ
def create = {
def clientRequestInstance = new ClientRequest()
clientRequestInstance.properties = params
return ['clientRequestInstance':clientRequestInstance]
}
私はその理由を知っていると思い、これは、内部の新しいオブジェクトを作成するにDEF clientRequestInstance =新しいClientRequest() アクション:) を作成しかし、私はまだ私のモデルを渡すことはできませんが... – Milkywayfarer