簡體   English   中英

Rails是否適合與非以Web為中心的應用程序一起使用?

[英]Is Rails appropriate for use with a non-web-centric app?

在我看來,Rails在構建以Web為中心的應用程序時大放異彩,例如敏捷書中介紹的Depot在線商店應用程序或Basecamp項目管理系統。 這些應用程序的關鍵是它們的Web界面,Rails為您提供了快速,輕松且優雅地創建這些Web應用程序的工具。

但是,如果您有一個帶有命令行界面的應用程序想要為其添加前端,該怎么辦? 例如,假設有一個處理第三方EDI文件的應用程序-它從FTP服務器獲取它們,進行解析,然后將數據插入數據庫並通過電子郵件發送報告。 在數據庫中配置了應用程序何時運行,應該生成哪些報告,誰應該獲取電子郵件等的時間表。 盡管該應用程序的重點是處理EDI文件,並且您希望通過cron運行它,但您仍希望構建一個網頁,以允許用戶管理他們接收的報告,接收的頻率,等等

命令行應用程序和網頁都需要訪問數據庫中的相同數據。 他們應該能夠共享模型和業務邏輯。 如果命令行應用程序已經包含帶有數據訪問層的庫,是否可以在Rails中利用該庫? 或者相反,是否有一種方法可以在外部應用程序中重用Rails的模型和控制器? 還是在這種情況下使用Rails作為Web框架沒有意義?

如果您只是想抽象出以數據庫為中心的應用程序的模型層,則始終可以將ActiveRecord庫(和ActiveSupport)包括在常規的ruby應用程序中。

實際上,大多數Rails應用程序都有一個Web界面和一個命令行界面-通過rake

典型的示例是必須定期執行的批處理作業,無論是cron還是任何時候。 但是也可以手動運行這些任務。

如果您是我,我會嘗試在lib/tasks內構建一些rake lib/tasks ,以映射這些命令行命令。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM