मैं उपयोगकर्ताओं को डोमेन कक्षाओं को पार करने और सामानों के डंप प्रिंट करने की अनुमति देना चाहता हूं। मेरे frist समस्या: निम्न काम करता है यह सोचते हैं ठीक:Grails: नाम से डोमेन क्लास
//this works
class EasyStuffController{
def quickStuff = {
def findAThing = MyDomainClass.findByStuff(params.stuff)
[foundThing:findAThing]
}
}
क्या उचित तरीके से मैं क्या नीचे कहने के लिए कोशिश कर रहा हूँ लिखने के लिए:
//this doesn't
class EasyStuffController{ servletContext ->
def quickStuff = {
def classNameString = "MyDomainClass" //or params.whichOne something like that
def domainHandle = grailsApplication.domainClasses.findByFullName(classNameString)
//no such property findByFullName
def findAThing = domainHandle.findByStuff(params.stuff)
[foundThing:findAThing]
}
}
//this also doesn't
class EasyStuffController{ servletContext ->
def quickStuff = {
def classNameString = "MyDomainClass" //or params.whichOne something like that
def domainHandle
grailsApplication.domainClasses.each{
if(it.fullName==classNameString)domainHandle=it
}
def findAThing = domainHandle.findByStuff(params.stuff)
//No signature of method: org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass.list() is applicable
[foundThing:findAThing]
}
}
उन लाइनों के ऊपर बिल्कुल काम नहीं है। मैं उपयोगकर्ताओं को किसी भी डोमेन क्लास को चुनने और "सामान" के साथ चीज़ वापस लेने की क्षमता देने की कोशिश कर रहा हूं। धारणा: सभी डोमेन वर्गों में एक ही प्रकार का एक स्टफ फ़ील्ड होता है।
मैं त्रुटि (दूसरी पद्धति का उपयोग करके प्राप्त और className = "खाता"): ऑब्जेक्ट 'Artefact> खाता' क्लास 'org.codehaus.groovy.grails.commons.DefaultGrailsDomainClass' कक्षा 'java.lang.Class' के कारण ऑब्जेक्ट नहीं डाला जा सकता है: java.lang.ClassNotFoundException: Artefact > खाता – Mikey
इसके बारे में क्षमा करें, मैंने जावा क्लास को डोमेन क्लास से प्राप्त करने के लिए उत्तर संपादित किया। –
@ बर्ट: मेरा मानना है कि, आपने अपने पहले उदाहरण की दूसरी पंक्ति में एक .clazz को याद किया (जैसा कि आपने दूसरे ब्लॉक में जोड़ा था)। दुर्भाग्यवश [मजाकिया नामकरण] (http://grails.org/doc/latest/api/org/codehaus/groovy/grails/commons/AbstractGrailsClass.html#getClazz%28%29) ने मेरे संपादन को अनुमोदित करने से रोका :-) – martin