如何構建我的Rails 3.x應用程序,以便登錄用戶只能看到與他所屬的組相關的記錄?Rails:Current_user應該只能看到他/她自己的組中的記錄。我該怎麼做呢?
例如, (足球主題)
想象一下這些機型:
一個團隊模式,分別代表30個職業橄欖球隊。
一個用戶模型,使用devise進行驗證。每個用戶都有一個team_id關聯。
一個玩家模型,代表NFL中的每個玩家:name:string,team_id:integer。
每個用戶都是一名主教練,並且應該只能夠在玩家#索引中看到他自己的玩家。 Rails知道這一點,因爲主教練(一個用戶)有一個與他相關的team_id,和球員一樣。
現在,只有兩個控制器(Team,Player),手動重新輸入索引和CRUD方法以顯示current_user的關聯記錄似乎相當容易。
def index
@players = Player.where(current_user.team_id = ?, 'player.team_id')
end
但是想象一下,你有6-10控制器: 門票, 交易, 員工, 合同, 等..... (全部具有TEAM_ID協會)
是否有Rails只顯示與current_user團隊相關的記錄的全局方式?
And ... Rails如何防止用戶將隨機ID輸入到URL中以查找與其team_id無關的記錄。 (想象一下紅皮教練打字http://www.thesite.com/players/224/edit)並且能夠編輯player_id = 224的牛仔隊球員。
謝謝。
爲什麼是窮人的做法在你的控制器使用CURRENT_USER? – Ken
不使用'current_user',而是創建長關聯鏈 –