çıkarım değildir Aşağıdaki yöntemini varScala uygun yöntemi
def show[E: Writes, T: Writes](block: RequestWithUser[AnyContent] => Either[E, T]): Action[AnyContent] = {
withErr(block)
}
Ben bir denetleyici bunun gibi kullanmak
:
def show(id: Long) = CrudAuthAction.show { request =>
IdeaType.findByIdWithErr(id)
}
Ve istek yöntemi seçmeli olmak istiyorum, bu yüzden aynı yöntemle başka imza tanımlamıştır:
def show[E: Writes, T: Writes](block: => Either[E, T]): Action[AnyContent] = {
withErr(request => block)
}
Ve gayet iyi çalışıyor, ben istek param atlayabilirsiniz
Ama bu gibi kullanmak istediğinizde bu diğer yöntemle
def list[T: Writes](block: RequestWithUser[AnyContent] => T): Action[AnyContent] = {
fromRequest(block)
}
def list[T: Writes](block: => T): Action[AnyContent] = {
fromRequest(request => block)
}
ile aynı şeyi yapmaya çalıştıklarında:
def list = CrudAuthAction.list { request =>
IdeaType.find(request.queryString)
}
o, o istek parametresi türü yok söylüyor ve Bunu şu şekilde belirtmeliyim:
def list = CrudAuthAction.list { request: RequestWithUser[AnyContent] =>
İlk durumdan neyin farklı olduğunu görmüyorum ama Bir ... isteğinin uygun türünü tahmin etmek
gördüğüm tek fark birinci durumda, blok bir Ya [E, T] dönüyor, ancak ikinci durumda dönen olmasıdır görünmüyor olabilir sadece genel bir T ...
En az tekrarlanabilir örnek gerekiyor. IdeaType.find, CrudAuthAction vb. Tanımına dayanır. – themel
@themel: Tam bir örnek göndermenin gerekli olduğunu düşünmüyorum, özellikle de problem burada olduğu gibi açıkça ve ayrıntılı olarak açıklanıyorsa. –