我在 Rails 4 中工作,并且已经让 CanCan 能够很好地处理这个问题的说明,除了一个我认为可能相对常见的用例。
我有一个Comment
模型,has_many :comments, through: :replies
用于嵌套评论。所有这些都运行良好,直到我添加load_and_authorize_resource
到我的评论控制器。问题似乎源于:parent_comment_id
向我的创建操作发送可选属性的隐藏字段。
我已通过强参数允许此属性:
def comment_params
params.require(:comment).permit(:content, :parent_comment_id, :post_id, :comment_id, :user_id)
end
这样我就可以在:parent_comment_id
包含 a 时创建关联:
if comment_params[:parent_comment_id] != nil
Reply.create({:parent_comment_id => comment_params[:parent_comment_id], :comment_id => @comment.id})
end
但是一旦我添加load_and_authorize_resource
,我得到一个未知的属性错误:parent_comment_id
。我错过了什么?