我很困惑如何在我的視圖和控制器中使用Devise的current_user助手。我是否需要執行遷移以在我的數據庫表中添加user_id?我需要使用會話控制器做些什麼嗎?在Rails4中使用Devise,如何讓用戶只編輯自己的評論?
這裏是我的路線文件:
devise_for :users
resources :groups, shallow: true do
resources :ideas do
resources :comments
end
end
登錄/註冊等工作正常。我想讓用戶只編輯他們創建的想法和評論。
我需要在我的應用程序控制器加一個輔助方法,例如:
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user
然後,從理論上講,我應該能夠做到以下幾點?
<% if current_user %>
<%= link_to 'Edit', edit_idea_path(@idea) %>
<% end %>
然後我還需要我猜我用current_user更新了我的控制器編輯動作?例如。 ?
@comment = current_user.comment.find(params[:id])
設計是一個認證系統,而你需要授權邏輯來實現這一點。見https://github.com/CanCanCommunity/cancancan寶石。如果你不想使用額外的寶石,你必須自己實現它。設計只是認證系統。 – blelump 2014-11-14 20:33:55
謝謝,我想我可以使用current_user作爲簡單的授權邏輯。我將使用cancancan,再次感謝所有回覆。 – userden 2014-11-15 06:13:12