我正在使用Rails應用程序的紅寶石。對於會話控制器,我想使用案例來檢查用戶的帳戶是否被鎖定或禁止。我試圖使用類的對象作爲案例,並使用何時檢查屬性。Ruby on Rails案例/開關。如何匹配對象?
例如,
user = Profile.find(1)
case user
when user.ban
redirect_to()
when user.lock
redirect_to()
else
redirect_to()
end
唯一的問題是,不能正常工作。
是什麼工作是這樣的:
case user.ban
when true
redirect_to()
else
redirect_to()
end
如何,我可以去,如果用戶對象是被禁止或鎖定使用開關檢查有什麼建議?
謝謝
感謝您對所有的答覆。我發現Zepplock的答案對我的應用程序最有用。唯一的區別是我在方法和案例中使用了符號。下面是我寫的方法: DEF狀態 如果self.ban 回報:禁止 結束 如果self.lock 回報:鎖定 結束 結束 – Brian 2010-07-03 18:43:07
@布賴恩:只是爲了Rubify一點 - 如果一個函數返回一個布爾值,用問號來命名它是一種很好的形式。此外,即使後修飾語可能會被濫用,並傷害易讀性,在這種情況下,我認爲他們會改進它:「def status;返回:如果禁止則禁止?返回:如果鎖定,鎖定?結束' – Amadan 2010-07-07 02:09:48