- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Rails 4 中工作,并且根据 this issue 中的说明让 CanCan 工作得很好,除了我认为可能相对常见的一个用例。
我有一个 Comment
模型,其中 has_many :comments, through: :replies
用于嵌套评论。所有这些都运行良好,直到我将 load_and_authorize_resource
添加到我的评论 Controller 。问题似乎源于向我的创建操作发送可选 :parent_comment_id
属性的隐藏字段。
我已经通过强参数允许了这个属性:
def comment_params
params.require(:comment).permit(:content, :parent_comment_id, :post_id, :comment_id, :user_id)
end
这样我就可以在包含 :parent_comment_id
时创建关联:
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
的未知属性错误。我错过了什么?
最佳答案
我在睡梦中找到了解决方案。这是我为解决问题所做的工作:
唯一的原因comment_params
通常在创建时没有问题,是因为我排除了额外的 :parent_comment_id
参数,像这样:
@comment = post.comment.create(comment_params.except(:parent_comment_id))
当 CanCan 使用 comment_params
时然而,它没有这样的卫生设施。因此,问题。在每个 Controller 的基础上将卫生添加到 CanCan 会很麻烦,所以我做了我应该一直做的事情,而不是通过 :parent_comment_id
里面:comment
, 我用过 hidden_field_tag
将其传递到 :comment
之外并通过普通的旧 params
访问它.
我希望这对犯类似错误的其他人有所帮助!
关于cancan - 带有 CanCan : unknown attribute error after including load_and_authorize_resource 的 Rails 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17242116/
我使用 CanCanCan、Devise 和 Rolify gem 进行身份验证和权限管理。但是当我创建一个新 Controller 时,我收到了这条消息: NameError in PanelCon
我有要在项目上下文中显示的任务。它们通过 habtm 关联关联。所以我有三个表:projects、tasks 和 projects_tasks。 resources :projects do re
用户 Controller .rb class UsersController 如果调用“load_and_authorize_resource”,那么它将加载什么实例变量? Q.2 > 如果它加载
尝试在我的应用程序中设置 Cancan 并且在使用 PostsController 时遇到问题。 简而言之,当创建 Post 时,我希望它与 current_user 相关联,因此我的创建操作如下所示
我在我的 Rails 应用程序中使用 CanCan 来获取权限,在该应用程序中,我为一些通用表单功能构建了自己的引擎。我想锁定我系统中的权限,以便用户无法自由访问我的引擎 Controller 的操作
我 promise 定制一个有cancan认证的项目。我的康康 ability.rb if user.has_role? :super_admin can :manage, :all elsif
我有一个使用强参数的标准 RESTful Controller 。 class UsersController ' 其中@attr在测试中定义为 before(:each) do @att
我在测试中有这个: let(:ability) { Object.new.extend(CanCan::Ability) } ... describe "GET show" do it 'redi
在我的应用中,我有工作表 Controller ,型号名称是工作表,但我的路线如下 routes.rb namespace :magazine do resources :pages, :con
我在 Rails 4 中工作,并且根据 this issue 中的说明让 CanCan 工作得很好,除了我认为可能相对常见的一个用例。 我有一个 Comment 模型,其中 has_many :com
我是一名优秀的程序员,十分优秀!