在ROR中的视图页面中访问控制器的对象属性

时间:2012-09-20 10:51:18

标签: ruby-on-rails

我是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的视图页面

1 个答案:

答案 0 :(得分:0)

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

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 %>