正在尝试设置Cancan在我的应用程序中,并且我的应用程序遇到问题PostsController
.
简而言之,当Post
创建后我希望它与current_user
所以我的创建操作看起来像这样:
class PostsController < ApplicationController
before_filter :login_required, :except => [:index, :show]
load_and_authorize_resource
...
def create
# @post = Post.new(params[:post]) # <-- covered by load_and_authorize_resource
@user = current_user
@post = @user.posts.create(params[:post])
respond_to do |format|
...
end
...
end
我不太确定是什么load_and_authorize_resource
是打算做的(除了显而易见的事情)。但在这样的情况下该怎么办呢?我需要覆盖load_and_authorize_resource
以某种方式进行创建操作?或者是否有另一种(阅读:更好)的方法来加载@user
然后创建@post
?
我认为最好的解决方案,因为这是一个独特的问题,让你改变load_and_authorize_resource
对此行:
load_and_authorize_resource :except => [:create]
以及对此的行动:
def create
authorize! :create, Post
current_user.posts.create(params[:post])
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)