无法将分配给单选按钮的值添加到rails注册表单中

时间:2017-08-19 20:16:08

标签: ruby-on-rails devise cancan rolify

我试图限制必须由注册用户完成的操作。

在这里,我给超级管理员一个值1,给管理员给2,给客人3个......我可以将这些值保存到db..but,

设计/注册/ new.html.erb:

<div class="row">
 <%= f.radio_button :usertype,  '1' %>
 <%= f.label :usertype, "Super Admin", :value =>"true" %>
</div>

<div class="row">
  <%= f.radio_button :usertype, '2' %>
   <%= f.label :usertype, "Admin", :value =>"false" %>
</div>
<div class="row">
  <%= f.radio_button :usertype, '3' %>
  <%= f.label :usertype, "Guest", :value =>"false" %>
</div>

但是,一旦我以超级admin / admin /guest登录,每个用户都可以看到所有操作都已完成.... 如何限制此访问.. ??

模型/ ability.rb:

class Ability
  include CanCan::Ability

  def initialize(user)
     user ||= User.new

    if user.has_role?(:super_admin)
      can :manage, :all
    elsif user.has_role?(:admin)
      can :create, Project
      can :update, Project do |project|
        project.ongoing?
      end
      can :read, Project
    elsif user.role?(:guest)
      can :create, Project
    end

  end
end

0 个答案:

没有答案
相关问题