0

我没有使用插件,而是使用教程http://ruby.railstutorial.org/chapters进行管理。但是我遇到的问题如下

class UsersController < ApplicationController
  before_filter :signed_in_user, only: [:index, :edit, :update, :destroy]
  before_filter :correct_user,   only: [:edit, :update]
  before_filter :admin_user,     only: :destroy

我还想要的是,如果您是 admin_user 则能够编辑和更新客户。但是由于使用了正确的用户,它不起作用

我尝试了以下

def correct_customer
    @customer = Customer.find(params[:id])
    redirect_to(root_path) unless current_customer?(@customer) || customer.admin?
end

但后来我有一个未定义的客户。如果管理员修改选定的客户,我允许用户的最佳方法是什么。

如果我单击客户#edit(不是我),则会发生错误

NameError in CustomersController#edit

undefined local variable or method `customer' for #<CustomersController:0xa51fd60>
Rails.root: /home/jean/rail/map
4

1 回答 1

0

我想你的意思是

redirect_to(root_path) unless current_customer?(@customer) || @customer.admin?
于 2012-08-13T17:08:29.113 回答