0

我是 ROR 的新手并正在学习它。在我的控制器中,我有一个管理员记录,我将该管理员对象传递给管理员的视图页面以获取管理员的名称。但是当我尝试访问它显示错误的名称时:

undefined method 'name' for :current_admin:Symbol

请帮忙..请在下面找到我的代码

Sessions Controller

def create
  admin=Admin.find_by_email(params[:session][:email].downcase)
  if admin && admin.authenticate(params[:session][:password])
    redirect_to(admins_index_path(:current_admin=>admin))
  end
end

在 index_admin 的视图页面中

4

1 回答 1

0

在您的操作中,index_admin您需要从您的参数中获取一个管理对象。参数的值通常只是一个字符串。

def create
  admin=Admin.find_by_email(params[:session][:email].downcase)
  if admin && admin.authenticate(params[:session][:password])
    redirect_to(admins_index_path(:current_admin => admin.id))  # pass the id, not the object
  end
end

def index_admin
  @current_admin = Admin.find(params[:current_admin])
end

在您的 index_admin.html.erb 中:

Hi <%= @current_admin.name %>
于 2012-09-20T11:09:08.100 回答