Rails 3-使用current_user和decent_exposure进行范围访问

时间:2011-05-05 08:09:37

标签: ruby-on-rails ruby-on-rails-3 scope ruby-on-rails-plugins

我成功地将decent_exposure gem设置为railscast

我想使用带有current_user的范围访问来进行编辑/更新/创建操作,以避免通过将对象的所有者与current_user进行比较来检查权限。

控制器:

class CommentsController < ApplicationController  
 expose(:article)  
 expose(:comments) { article.comments }  
 expose(:comment)  

 def index  
 end  

 def new  
 end  

 def create  
  if comment.save  
   redirect_to comment.article, :notice => "Successfully created comment!"  
  else  
   render :new  
  end  
 end  
end

如何在我的编辑操作中使用decent_exposure这样的东西,例如:

@comment = current_user.comments.find(params[:id])

提前致谢!

1 个答案:

答案 0 :(得分:1)

我认为你可以做到:

公开(:user_comments){current_user.comments}

暴露(:USER_COMMENT)

user_comment应限定为current_user.comments,您将使用user_comment将在您的视图中使用。