我有這個遍佈顯示在我的控制器:聲明式ruby編程替換if/then/else/RETURN/end?
if not session[:admin]
flash[:notice] = "You don't have the rights to do #{:action}."
redirect_to :action=>:index
return
end
而它的兄弟:
if not session[:user] and not session[:admin]
flash[:notice] = "You don't have the rights to do #{:action}."
redirect_to :action=>:index
return
end
我想所有的轉降低這一個聲明行,當我想用它在一個方法中:
def action_which_requires_rights
require_rights :admin
#or:
#:require_rights :user_or_admin
end
顯然,如果require_rights失敗,我不希望執行其餘的方法。我會發誓有辦法做到這一點,但我無法找到我讀到的地方。我在想像這個嗎?
對於第一個示例,作爲一般ruby模式。 – 2009-01-21 17:35:29