使用管理部分和公開部分設計Web應用程序。感覺就像只有「索引」和「顯示」的公共控制器有點多餘。我讀過的所有建議都爲admin提供了一個名稱空間,這很好。我只是想知道我是否應該有一個控制器加入動作,比如說「list_public」或類似的東西。Rails - 兩個控制器或添加動作?
我是Rails的新手,所以也許我只是關心什麼。我只是不喜歡將所有這些控制器,視圖,助手名稱分散在我的項目目錄中的想法。
任何人都有這方面的見解?提前致謝。
使用管理部分和公開部分設計Web應用程序。感覺就像只有「索引」和「顯示」的公共控制器有點多餘。我讀過的所有建議都爲admin提供了一個名稱空間,這很好。我只是想知道我是否應該有一個控制器加入動作,比如說「list_public」或類似的東西。Rails - 兩個控制器或添加動作?
我是Rails的新手,所以也許我只是關心什麼。我只是不喜歡將所有這些控制器,視圖,助手名稱分散在我的項目目錄中的想法。
任何人都有這方面的見解?提前致謝。
我會說有兩個控制器(一個公共和一個管理員)是最好的解決方案。
現在你可以做的是讓控制器調用與動作中的相關動作相同的方法。
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
# Admin only stuff goes here
end
end
正如馬特說,但你也可以這樣做:
class MyController < ApplicationController
def show
MyModel.do_all_sorts_of_stuff
end
end
class Admin::MyController < MyController
def show
super
# Admin only stuff goes here
end
end
這意味着,你可以專注於更專業的情況下,爲聯繫:: myController的而不是重複代碼。
謝謝,馬特。這是有道理的,我只需要驗證它不是「過度的」。 – TMB 2009-04-24 18:24:38