2012-05-29 33 views
0

我的Rails 3.2項目有一個設計生成的用戶和一組模型,它們都包含特定於該用戶的數據。我希望登錄用戶能夠通過控制器公開的API訪問他自己的數據。現在對當前設計用戶的範圍授權?

,蠻力的方式,使這將是每一個控制器從類似變化:

def index 
    @stuff = Stuff.all 

def index 
    @stuff = Stuff.find_all_by_user_id current_user.id 

我不得不重複這對於每一個每個控制器的動作。是否有更簡潔和乾爽的方式來達到同樣的效果?我必須寫的樣板文件的數量感覺不對。

謝謝!

回答

1

看看CanCan寶石。

+0

我想這應該做的伎倆,我就讓你們這些人知道,如果它不削減! –

0

a)您可以在application_controller.rb回調,看起來像

def find_stuff_from_current_user 
    @stuff = Stuff.find_all_by_user_id current_user.id 
end 

而不是在每個控制器這樣調用此之前有一個

before_filter :find_stuff_from_current_user 

現在你有@在每個控制器和每個動作中可用的東西變量。

b)或您可以使用的東西model.rb作用域,你這樣說:

scope :stuff_from_current_user, where(:user => current_user)