Ruby on Rails Mountable vs. Full Engine

來源:互聯網
上載者:User

標籤:host   產生   java   程式   control   spec   不用   一個   檔案中   

原文 :https://www.travisluong.com/ruby-on-rails-mountable-vs-full-engine/
一個Rails Engine 本質是一個 Rails application,你可以附加到其他的rails application上提供附加功能。
一個Rails Engine是一個Rails應用程式,因為它遵循與“普通”Rails應用程式相同的模型視圖控制器模式。

 

rails Engine 和通常的rails application有什麼的不同呢,一個rails engine通常使用命令,$ rails plugin new my_engine --mountable 或 $ rails plugin new my_engine --full產生,

因為engines被打包作為ruby gems,所以你使用需要的gem時,在gemspec中添加而不是gemfile中,當你使用bundler時,在gemfile中使用gemspec函數將會自動載入他們,所以你必須在engine.rb中使用require引入它們,否則你會看到nomethod的錯誤,同時,一個虛擬application會在你的測試目錄中產生,用來測試使用,你必須拷貝整個遷移檔案到你的虛擬application中,以及任何你希望使用這個engine的appliction上,幸好,engine有一個rake命令可以做這個事,rake my_engine:install:migrations

 

兩種類型的主要不同是,mountable engine有獨立的命名空間,而full engine沒有,這意味著,mountable engine可以作為host application的一部分運行, 而full engine 必須整合到host applicatin中,本質上,一個full engine與host application分享Models views, controllers, helpers和路由,一個mountable engine卻不分享,mountable engine有自己的layout,javascript, css檔案,而full engine卻沒有,使用mountable engine 需要在你的host application的路由檔案中 使用mount函數掛載到一個子路徑下,full engine卻不用看起來,一個 ountable engine適合單獨的application,例如 blog,forum,一個full engine適合 添加到一個已存在的application例如 驗證方案,或者許可權介面,mountable engine適和與application同時使用,full engine適合與application一起使用

 

Ruby on Rails Mountable vs. Full Engine

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.