我成功地将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])提前感谢!
发布于 2011-07-25 11:21:40
我认为你可以这样做:
expose(:user_comments) { current_user.comments }
暴露(:user_comment)
user_comment的作用域应该是current_user.comments,并且您将在视图中使用user_comment。
发布于 2021-11-09 06:47:37
这应该是可行的:expose :comment, scope: ->{ current_user.comments }
https://github.com/hashrocket/decent_exposure#scope
请试一试。
Adam T,如果我猜对了,decent_exposure将在这种情况下寻找UserAnswer模型,并以未初始化的常量UserAnswer落入,因为没有这样的模型:expose(:user_comments) { current_user.comments }
https://stackoverflow.com/questions/5894538
复制相似问题