[英]Creating rails 3 gems: Gems installing successfully, but no functionality
[英]Creating Rails Gems
我想以模塊化方式構建我的應用程序:例如,我可能有:
Users->has_and_belongs_to_many->Projects
Users->has_and_belongs_to_many->Tasks
Projects->has_many->Tasks
Tasks->belongs_to->Project (1 task belongs to 1 project.)
注意 :項目和任務可以包含許多用戶。
我想要構建這個的方式是:
每個都可以返回json(for ember)或html。 兩者都沒有相互依賴,這個想法是每個都只是一個細節。 Rails,ember和html都只是細節。
我怎么能這樣做,並在一天結束時像拼圖一樣把它們連在一起? 或者這甚至可行嗎?
現在,我已經完成了這個概念的用戶部分。 它包含模型,測試,控制器和視圖。 我可以將其捆綁為寶石,還是僅將控制器和模型捆綁在一起? 這個“用戶”寶石將使用friendlyId gem來使網址看起來不錯,實際上所有“寶石”(項目,任務和用戶)都將依賴於這個寶石。
你有什么建議去做我想要的模塊化? 這是好習慣嗎? 不好的做法?
每個引擎本身都可以是一個應用程序。
例如, Devise - 在你的應用程序中添加了許多身份驗證功能的gem是一個Rails引擎。 它提供了您自己的控制器,幫助器,郵件程序和視圖,您可以從您的應用程序中使用它們。
我個人正在使用Engines來插入i18n網絡后端(允許輸入和保存翻譯到Redis的管理頁面)到許多應用程序中,並將用戶的錯誤報告和問答功能插入到幾個現有項目中。
每個引擎都作為寶石包含在項目中,它可以包含普通應用程序所做的任何事情 - 控制器,視圖,模型,資產,其他寶石......
我個人沒有聽說過這種方法有任何成功的故事(但我不知道是否有人試過),所以如果你有一個堅實的概念,也許它會對你有用。
Pivotal Labs做了一個演講(Euruko 2013在雅典),他們展示了類似於你所描述的軌道引擎方法。 這是演示文稿http://www.ustream.tv/recorded/35107339/highlight/377037
雖然我沒有在實踐中看到它,但我想。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.