Vapor Swift Fluent: тип выражения неоднозначен без дополнительного контекста - PullRequest
0 голосов
/ 29 ноября 2018

Это мой маршрут:

router.get("answers","delete", Int.parameter) { req -> Future<Response> in

        let answerID = try req.parameters.next(Int.self)
        guard let _ = getUsername(req) else {
            throw Abort(.unauthorized)
        }
        return Message.query(on: req).filter(\.id == answerID).first().map(to: Response.self) { answer in
            guard let answer = answer else {
                throw Abort(.notFound)
            }
            return answer.delete(on: req).map(to: Response.self) { _ in
                return req.redirect(to: "/answers")
            }
        }
    }

Но для xCode это неоднозначно без контекста .filter(\.id == answerID)

А это моя структура Сообщение:

struct Message: Content, SQLiteUUIDModel, Migration {
var id: UUID?
var username: String
var content: String
var category: String
var question: String
var date: Date

}

Я не понимаю, потому что я использую фильтры на идентификаторах во многих других маршрутах, и я впервые показываю эту ошибку.

Я погуглил это, и кажется, что ошибки обнаруживаютсякогда Fluent не импортируется, но у меня уже import Fluent наверху.

1 Ответ

0 голосов
/ 29 ноября 2018

Я только что успел проверить ваш код.Если вы замените

...   .map(to: Response.self) { answer in ....

на

... .flatMap(to:Response.self) { answer in ...

, это сработает.

...