0

ユーザーを管理者と非管理者の間で切り替える方法があります。リンクをクリックすると、ユーザー インデックスに戻り、アドレス バーに次のように表示されます http://localhost:3000/users?id=1&method=toggle_admin。私が知る限り、メソッドを実行するための適切なコードがあります。誰でも間違いを見ることができますか?

ビューの link_to メソッドは次のとおりです。

<%= link_to 'Toggle Admin', { :controller => :users, :method => :toggle_admin, :id => user.id} %>

routes.rb ステートメントは次のとおりです。

match 'users/:id/toggle_admin' => 'users#toggle_admin'

コントローラーメソッド:

def toggle_admin
    @user = User.find(params[:id])

    User.toggle_admin(@user)

    respond_to do |format|
      format.html { redirect_to @users }
    end

end

モデルメソッド:

def toggle_admin(user)
  if user.is_admin.nil or user.is_admin = ''
     user.is_admin = false
  end
  user.toggle is_admin

  user.save
end
4

1 に答える 1