dan*_*iel 2 ruby-on-rails devise ruby-on-rails-3
嘿,我希望你能帮助我.
我正在使用rails 3和设计宝石.
我试图找到一种方法让用户只编辑他们创建的帖子/评论.
我应该为此添加CanCan宝石还是我可以用设计来做?或者只是一个简单的Active Record查询可能吗?
非常感谢.
von*_*rad 10
假设你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
Run Code Online (Sandbox Code Playgroud)
这只会在当前用户创建它时找到帖子.
当然,您还必须修改update操作.
Devise创建一个哈希current_user,您可以在控制器,模型和视图中使用它.因此,创建一个类似这样的检查应该很容易:
@comment = Comment.find(params[:id])
if current_user.id == @comment.user.id
# yadda
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3291 次 |
| 最近记录: |