を持っている場合、正しく方法を覚えていません、私は新しいドメインを作成するためのこれら二つの方法を持っている方法を保存します(newSubDomainビュー内の)フォームのパラメータを使用して、userDomainListをgspに渡すので、そこからselectを作成できます。Grailsはエラー
def newSubDomain() {
def currentUser = springSecurityService.getCurrentUser()
def domainList = currentUser.domains //an hasMany domain for user
def subDomain = new SubDomain(params)
[subDomain: subDomain, domainList: domainList ]
}
2つ目は、保存ある()メソッド
def saveSubDomain(SubDomain subDomain) {
if (subDomain== null) {
notFound()
return
}
if (subDomain.hasErrors()) {
respond subDomain.errors, view:'newSubDomain'
return
}
subDomain.save flush: true
redirect(controller: "controller", action: "action")
}
サブドメインが、私は同じ名前のサブドメインを作成した場合、私はそれが上のエラーメッセージを表示したい、ユニークな名前を持っている必要がありますnewSubDomainビューのトップですが、これは起こりますが、エラーを渡すメソッドを呼び出すと、ビュー内でselectをロードできないように、「domainList」を再ロードおよび/または渡しません。
これは私が間違ってやっている何newSubDomain.gspビュー
<g:hasErrors bean="${this.subDomain}">
<ul class="errors" role="alert">
<g:eachError bean="${this.subDomain}" var="error">
<li <g:if test="${error in org.springframework.validation.FieldError}">data-field-id="${error.field}"</g:if>><g:message error="${error}"/></li>
</g:eachError>
</ul>
</g:hasErrors>
<g:form controller="subDomain " action="saveSubDomain">
<f:field bean="subDomain " property="name"/>
<br>
<f:field bean="subDomain" property="domain">
<g:select name="domain"
from="${domainList}"
optionKey="id"
optionValue="name"
/>
</f:field>
<g:actionSubmit value="Save sub Domain" action="saveSubDomain"/>
</g:form>
のコードの一部ですか?私はgrails(または一般的なWebアプリケーション)についてよく知っていませんが、コントローラから見るためにパラメータを渡すより良い方法がありますか?なぜ、エラーが発生したときにnewSubDomainビューを再度呼び出すと、domainListを渡さないのですか?