大佬教程收集整理的这篇文章主要介绍了ruby-on-rails – 如何使某些属性仅对具有特定角色的用户可访问?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
attr_accessible :role_ids,:as => :admin
但这似乎不起作用.
我希望只有当current_user.can?(:edit,RolE)时才能访问此特定属性 – 即只有具有admin或superadmin角色的用户才能访问这些属性.
我该怎么做呢?
编辑1:我正在使用Devise,CanCan& Rolify.
即使它不适合,最好开始集成这些原则,因为它将使您的Rails 3到4升级更容易.
如果您拥有Railscasts Pro会员资格,Ryan Bates已经再次获得了fantastic tutorial.
简而言之,这是Railscast推荐的内容.
安装gem后,从模型中删除attr_accessible.
将其添加到初始化程序:
ActiveRecord::Base.send(:include,ActiveModel::ForbiddenAttributesProtection)
更改控制器中的更新操作::
def update @topic = Topic.find(params[:id]) if @topic.update_attributes(topic_params) redirect_to topics_url,notice: "updated topic." else render :edit end end
在控制器中创建一个私有方法:
def topic_params if current_user && current_user.admin? params[:topic].permit(:name,:sticky) else params[:topic].permit(:Name) end end
在您的情况下,就像我们一样,您必须更改topic_params方法以使用您的角色.
在RailsCast中还有一些建议,它真的值9美元! (我与该网站没有任何关系,它对我们来说是非常宝贵的)
如果这有帮助,请告诉我.
以上是大佬教程为你收集整理的ruby-on-rails – 如何使某些属性仅对具有特定角色的用户可访问?全部内容,希望文章能够帮你解决ruby-on-rails – 如何使某些属性仅对具有特定角色的用户可访问?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。