2013-10-25 28 views
0

我有一個「管理控制面板」頁面,由AdminController處理。您可以在控制面板中執行兩項操作:create_productcreate_order。每個對象都會有表單,當您提交表單時,它會將新記錄插入到數據庫中。Rails的方式來創建幾個「創建」頁面

什麼是Rails的實現方式?我是否生成了CreateProductControllerCreateOrderController以及相應的視圖,可通過點擊控制面板上的create_productcreate_order鏈接訪問?

Rails方式是否描述瞭如何使用單個控制器來處理這兩種工作流?在某些時候,我需要爲每個表單定義一個post方法,因此似乎創建單獨的控制器是設置所需行爲和路由細節的最簡單方法。

回答

1

產品和訂單是有控制器時的所有資源。更好的方法是使用RESTful資源。您還可以添加名稱空間以便於識別。

class Admin::ProductsController < AdminController 

    def create 
    end 

    def new 
    end 

    # And #show, #index, #destroy etc. 
end 

class Admin::OrdersController < AdminController 

    def create 
    end 

    def new 
    end 

end 
+0

您可以使用'scope:admin'來定義routes.rb中的資源,使路徑類似於「admin/products/create」。爲了您對博客文章的關注,我認爲這只是對名稱的爭論。如果db受到攻擊,它不會成爲RESTful資源的錯誤。 –

+0

我生成了一個名爲'admin/product'的模型,但無法獲得'scope:admin'來查找我的'ProductController',但我嘗試了'namespace:admin'而不是它並找到它。 – MxyL