मैं इस नाटक ढांचा 2 कोड पर निर्भर करता है परिभाषित करें:एक अमूर्त वर्ग या ऐसी विशेषता है जो एक अंतर्निहित
import formatters.json.IdeaTypeFormatter._
object IdeaTypes extends Controller {
def list = Action { request =>
Ok(toJson(IdeaType.find(request.queryString)))
}
def show(id: Long) = Action {
IdeaType.findById(id).map { ideatype =>
Ok(toJson(ideatype))
}.getOrElse(JsonNotFound("Type of idea with id %s not found".format(id)))
}
}
IdeaType
वर्ग Entity
फैली हुई है, और यह, साथी वस्तु, IdeaType
है EntityCompanion
फैली हुई है।
कि आप उम्मीद कर सकते हैं, मैं हर नियंत्रक में कोड के इस प्रकार है, तो मैं, कुछ इस तरह एक विशेषता के लिए बुनियादी व्यवहार को निकालने के लिए करना चाहते हैं:
abstract class EntityController[A<:Entity] extends Controller {
val companion: EntityCompanion
val name = "entity"
def list = Action { request =>
Ok(toJson(companion.find(request.queryString)))
}
def show(id: Long) = Action {
companion.findById(id).map { entity =>
Ok(toJson(entity))
}.getOrElse(JsonNotFound("%s with id %s not found".format(name, id)))
}
}
लेकिन मैं निम्नलिखित त्रुटि मिलती है :
[error] EntityController.scala:25: No Json deserializer found for type List[A].
[error] Try to implement an implicit Writes or Format for this type.
[error] Ok(toJson(companion.find(request.queryString)))
[error] ^
[error] EntityController.scala:34: No Json deserializer found for type A.
[error] Try to implement an implicit Writes or Format for this type.
[error] Ok(toJson(entity))
[error] ^
मैं नहीं जानता कि यह बताने के लिए कैसे है कि निहित Writes
कक्षाएं EntityController
विशेषता को लागू करने (या अमूर्त वर्ग EntityController
इनहेरिट)
- संपादित
अब तक अब मैं इसे इस तरह कर रहा हूँ:
abstract class CrudController[A <: Entity](
val model: EntityCompanion[A],
val name: String,
implicit val formatter: Format[A]
) extends Controller {
और इस
object CrudIdeaTypes extends CrudController[IdeaType](
model = IdeaType,
name = "type of idea",
formatter = JsonIdeaTypeFormatter
)
की तरह उपयोग मैं स्केला स्वचालित रूप से उपयोग कर इसे लेने के लिए मिल could't implicits। मैं इस आयात के साथ करने की कोशिश की लेकिन यह
import formatters.json.IdeaTypeFormatter._
+1, ऐसा ही सोचा है, प्ले में सामान्य सीआरयूडी संचालन को कैसे दूर किया जाए। आपका केस, जेएसओएन प्रतिक्रिया मिश्रित JSON और views.html सामग्री + प्रमाणीकरण से निपटने से आसान है। लूत ओ 'बॉयलरप्लेट ... – virtualeyes