2013-02-01 49 views
3

請參閱:Is there a CRUD generator utility in Java(any framework) like Scaffolding in Rails?在Scala(任何框架)中是否有像Rails中的腳手架一樣的CRUD生成器實用程序?

我有同樣的問題,但關於斯卡拉。我知道Play框架1.x有生成器,但2.x刪除它們,是否有任何可用於任何基於Scala的Web框架的CRUD /腳手架生成器?

+1

不,是在玩這個用戶組的時候談過這個,沒有計劃。 Twitter Bootstrap + DAO實現+ RESTful路由是您最好的選擇;即滾動你自己的。 – virtualeyes

+0

@virtualeyes謝謝,我很擔心是這樣。我正在考慮創建一個用於教育目的的應用,在我嘗試進入這個實驗之前,有什麼我應該注意的嗎?任何事情從哪裏開始? –

+1

檢查關於整合結核病的文檔,非常棒,給你一個很棒的開頭,CRUD與Play相當簡單。 – virtualeyes

回答

1

複製從意見的答案,以從「未答覆」過濾器中刪除了這個問題:

不,是在劇中用戶羣有的談這個,沒有任何計劃。 Twitter Bootstrap + DAO實現+ RESTful路由是您最好的選擇;即滾動你自己的。

...

檢查上集成TB [Twitter的引導],相當真棒的文檔,爲您提供了很大的領先地位,CRUD與播放是相當容易的。

〜每virtualeyes

2

答案我正在尋找一個腳手架工具太(它彈出你的問題),並發現這一點:http://skinny-framework.org/documentation/scaffolding.html

我沒有嘗試過,但文檔看起來像它會做的工作:

./skinny g model tweet userId:Long text:String user:Option[User] 將創建

package model 

import skinny.orm._, feature._ 
import scalikejdbc._ 
import org.joda.time._ 

// If your model has +23 fields, switch this to normal class and mixin scalikejdbc.EntityEquality. 
case class Tweet(
    id: Long, 
    userId: Long, 
    text: String, 
    user: Option[User] = None, 
    createdAt: DateTime, 
    updatedAt: DateTime 
) 

object Tweet extends SkinnyCRUDMapper[Tweet] with TimestampsFeature[Tweet] { 

    override lazy val defaultAlias = createAlias("t") 

    lazy val userRef = belongsTo[User](User, (t, u) => t.copy(user = u)) 

    /* 
    * If you're familiar with ScalikeJDBC/Skinny ORM, using #autoConstruct makes your mapper simpler. 
    * (e.g.) 
    * override def extract(rs: WrappedResultSet, rn: ResultName[Tweet]) = autoConstruct(rs, rn) 
    * 
    * Be aware of excluding associations like this: 
    * (e.g.) 
    * case class Member(id: Long, companyId: Long, company: Option[Company] = None) 
    * object Member extends SkinnyCRUDMapper[Member] { 
    * override def extract(rs: WrappedResultSet, rn: ResultName[Member]) = 
    *  autoConstruct(rs, rn, "company") // "company" will be skipped 
    * } 
    */ 
    override def extract(rs: WrappedResultSet, rn: ResultName[Tweet]): Tweet = new Tweet(
    id = rs.get(rn.id), 
    userId = rs.get(rn.userId), 
    text = rs.get(rn.text), 
    createdAt = rs.get(rn.createdAt), 
    updatedAt = rs.get(rn.updatedAt) 
) 
} 

希望這有助於!

相關問題