2016-09-19 13 views
0

我們正在構建/將新功能遷移到我們的Web應用程序中。我們有一個名稱空間API(V1),移動應用程序用它來與應用程序通信。在Rails中,根據是否通過API或Web前端發出請求,具有條件的模型的最佳方式是什麼?

雖然我們正在轉型(我們將首先發布Web的功能),但爲了在共享模型文件中分離邏輯,如何區分API請求和Web請求?我們需要這些模型保持與移動應用程序相同,但對於新的基於網絡的新功能則不同。像

request.format

不幸的是代碼是不是在型號。

還是有辦法告訴API控制器使用不同的模型文件,並有一些API與Web應用程序控制器的單獨模型?

+0

顯而易見的事情是將一個'from_api'屬性添加到適當的模型中,並在您的模型級邏輯中使用它。您必須確保在所有創建新對象的API控制器中設置'from_api = true'。但是如果你在網絡上創建一個對象,然後通過API進行編輯,會發生什麼情況 - 你的業務邏輯是什麼?我們給出的任何答案都是猜測,而不知道業務邏輯是什麼。 –

+0

一個例子是郵件程序。在移動應用程序/ API中,購物車模型需要調用郵件程序並傳遞一個對象(用戶一次只能購買一件商品)。在網絡應用程序中,我們構建了一個購物車系統,而購物車模型需要傳遞一系列物品,並讓郵件知道它將處理多個物品而不是一個物品。 – rcd

回答

0

我知道你應該在模型中放置儘可能多的代碼,但是這段代碼是否屬於那個?

它提出了問題,因爲這似乎是1)呈現導向和2)關於狀態/請求。

它使我相信這段代碼實際上應該駐留在控制器中。

API控制器使用不同的模型文件

OFC,只是用不同的模型......

您提供的有關你想達到什麼樣的信息很少,這使得事情很難。

但是,這似乎是一些基於Web狀態的面向演示文稿的代碼。

有,爲您的應用程序添加裝飾,並在那裏做你的條件演示。

相關問題