设计身份验证未定义的方法'to_sym'?

时间:2011-08-12 17:29:20

标签: ruby-on-rails devise

我正在尝试使用devise设置针对LDAP活动目录的身份验证系统。 (遵循教程http://wiki.phys.ethz.ch/readme/devise_with_ldap_for_authentication_in_rails_3

我完全按照说明操作,当我尝试运行应用程序时出现以下错误:

undefined method `to_sym' for #<ActiveModel::MassAssignmentSecurity::WhiteList:0x2a4abd50

我甚至不知道to_sym在哪里,因为它没有告诉我!任何人都知道这个的原因或至少如何找到包含这一行的文件? 的 * ** * ** * 更新 * ** * ** *

user.rb型号:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :encryptable, :confirmable, :lockable, :timeoutable
and :omniauthable
  devise :ldap_authenticatable,
       :rememberable, :trackable,

  # Setup accessible (or protected) attributes for your model
  attr_accessible(:login, :password, :password_confirmation, :remember_me)
end

1 个答案:

答案 0 :(得分:1)

devise方法的最后一个参数之后看起来有一个尾随逗号:

devise :ldap_authenticatable, :rememberable, :trackable,

然后,ruby解释器假定attr_accessible是该方法的下一个参数。正确的参数类型是一个符号,因此它在to_sym上调用attr_accessible,这是一种方法,没有to_sym方法并引发错误。

删除尾随的逗号,它应该有效!