【问题标题】:Adding Authorization Role to User为用户添加授权角色
【发布时间】:2015-11-17 07:36:04
【问题描述】:

我希望能够以管理员身份向其他用户添加授权角色..当我单击“添加角色”按钮时,它说它已将角色添加到该用户..但是当我在 Rails 控制台中检查角色时该用户仍然为零。

def index
    @user = User.new
    @users = User.all
end

def update
    @users = User.all
    @user = User.find_by_username(params[:user][:username])
    if @user && params[:user][:role] == "editor"
        @user.role = "editor"
        @user.save
        flash.notice = "Added role 'editor' to #{@user.username}."
        redirect_to "/adminsettings"
    elsif @user && params[:user][:role] == "admin"
        @user.role = "editor"
        @user.save
        flash.notice = "Added role 'editor' to #{@user.username}."
        redirect_to "/adminsettings"
    elsif @user && params[:user][:role] != "editor"
        flash.notice = "Please chose 'editor' if you want to add this role to this user."
        redirect_to "/adminsettings"
    else
        redirect_to "/adminsettings"
        flash.notice = "Please choose one of the users below."
    end
end 

查看

<%= form_for @user ,:url => {:controller => "admin_settings", :action => "update"}, method: :patch do |user| %>
    <%= user.text_field :username, :placeholder => "Username" %><br />
    <%= user.text_field :role, :placeholder => "Role" %><br />
    <%= user.submit "Add Role" %>
<% end %>

<% @users.each do |user| %>
    <strong><%= user.username %></strong><br />
<% end %>

路线

  get '/adminsettings', to: 'admin_settings#index'
  patch '/adminsettings', to: 'admin_settings#update'

【问题讨论】:

    标签: ruby-on-rails sql-update authorization roles


    【解决方案1】:

    尝试将调用参数的用法更改为...

    def update
        @users = User.all
        @user = User.find_by_username(params[:username])
        if @user && params[:role] == "editor"
            @user.role = "editor"
            @user.save
            flash.notice = "Added role 'editor' to #{@user.username}."
            redirect_to "/adminsettings"
        elsif @user && params[:role] == "admin"
            @user.role = "editor"
            @user.save
            flash.notice = "Added role 'editor' to #{@user.username}."
            redirect_to "/adminsettings"
        elsif @user && params[:role] != "editor"
            flash.notice = "Please chose 'editor' if you want to add this role to this user."
            redirect_to "/adminsettings"
        else
            redirect_to "/adminsettings"
            flash.notice = "Please choose one of the users below."
        end
    end 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-29
      • 1970-01-01
      • 1970-01-01
      • 2020-11-12
      • 2018-03-21
      • 2020-01-17
      • 2021-11-23
      • 2018-02-09
      相关资源
      最近更新 更多