我試圖創建一個更新數據庫中的數據的方法,我在Play上使用Scala!框架。我有一個名爲Application的模型,我希望能夠更新數據庫中的應用程序。所以put請求只需要你想要更新的應用程序的id,然後是你想要更新的可選屬性。在scala中使用變量值設置對象的屬性
所以在我的路線我有這樣的:
PUT /v1/auth/application controllers.Auth.update_application(id: Long)
我目前擁有的方法是這樣的:
def update_application(id: Long) = Action { implicit request =>
var app = Application.find(id)
for((key, value) <- request.queryString) {
app."$key" = value(0)
//app.name = value(0)
}
val update = Application.update(id, app)
Ok(generate(
Map(
"status" -> "success",
"data" -> update
)
)).as("application/json")
}
在上面的方法,我通過請求和應用程序對象作爲一個循環地圖實例,然後使用該模型更新要更新的應用模型。我知道有一種更簡單的方法,就是將請求字符串創建爲map,然後迭代該對象,但我正在以此方式進行學習。我是Play!
和Scala
的新手,幾乎沒有新的一週。
有沒有辦法用這種方式動態地設置一個屬性?在循環結束處的上述方法中,我將如何更新Groovy
中的對象屬性。所以我正在尋找Scala中的等價物。如果斯卡拉不能這樣做,那麼完成這個任務的最好方法是什麼? Reflection
?我不想過於複雜的東西