2016-02-28 41 views

回答

0

您將其他項目構建爲普通導軌項目。瞭解Rails 5 api模式的一點是,你不能將普通的html作爲它的一部分。整個渲染管道(資產等)都缺失。 Rails 5 api模式很快,因爲環境的很大一部分只是簡單的消失了。

你想要做的是有2個項目:

  • 管理
  • API

,並找出一種方法來跨越他們分享你的模型的邏輯。

如果您使用devise進行身份驗證,這是非常棘手的,因爲devise添加到您的用戶模型,你不能在api項目中的東西。以下是我如何解決這個問題:

If Rails.application.class.parent_name == "admin" 
    # devise crap goes here 
end 

如何在2個git倉庫中輕鬆共享模型目錄?我沒有很好的答案。我有一個rake任務,它通過將它們從規範源複製到目標來手動同步事物,但這是一種破解。

1

我想實現這種功能的方法是,像這樣:

  • RAIL API爲模型,數據庫,驗證和關係邏輯。
  • 客戶端MVC for RESTful調用的管理員應用程序。爲此,我會使用Backbone Marionette。

這是我能想到的最乾淨,最少代碼重複實現,它遵循行業標準。

這是根據軟件口頭禪「消費自己的狗糧」 - 如果你創建一個API,使用它的界面來做你的東西。這樣你就可以隨時測試和改進它。

如果您只想在兩端使用RAILS,那麼最好將ADMIN和您的API作爲一個應用程序來實現,以實現最少的代碼重複。爲所有外部呼叫創建一個API控制器名稱空間,併爲您的管理視圖和內容編寫普通導軌。這樣你的數據庫和模型驗證和關係邏輯就是共享的,但是控制器和路由名稱空間不是。

Toodles。

相關問題