嘿,我希望你能幫助我。如何限制用戶只編輯自己的記錄
我正在使用rails 3和devise gem。
我想找到一種方法讓用戶只編輯他們創建的帖子/評論。
我應該爲此添加CanCan gem還是可以用設計來完成?還是隻有一個簡單的活動記錄查詢可能?
非常感謝。
嘿,我希望你能幫助我。如何限制用戶只編輯自己的記錄
我正在使用rails 3和devise gem。
我想找到一種方法讓用戶只編輯他們創建的帖子/評論。
我應該爲此添加CanCan gem還是可以用設計來完成?還是隻有一個簡單的活動記錄查詢可能?
非常感謝。
設計會創建一個散列current_user
,您可以在控制器,模型和視圖中使用該散列。所以它應該是很容易地創建一個支票確實是這樣的:
@comment = Comment.find(params[:id])
if current_user.id == @comment.user.id
# yadda
end
康康舞您的需求有點大材小用,但是這將是一個後來變陣更加靈活。
否則,只需比較user_id和author_id。
謝謝!我會記住CanCan:D – daniel 2011-01-10 00:32:34
假設你有User
和Post
/Comment
之間的關係,你可以使用這種關係只取屬於用戶記錄在您的edit
行動:
class PostsController < ApplicationController
def edit
# Instead of this:
# Post.find(params[:id])
# Use this:
current_user.posts.find(params[:id])
end
end
這隻會發現後,如果當前用戶已經創建了它。
當然,您也必須修改update
操作。
IMO cancancan是從長遠角度來看的方式。你擁有更多的權力和控制權,但這是以小型學習曲線爲代價的。 – BKSpurgeon 2017-02-14 22:20:17