如果语句应检查用户电子邮件是否存在,然后使角色为admin ..但它不起作用

时间:2014-11-30 21:31:38

标签: ruby-on-rails ruby

我其实想知道最好的方法。我将要有一系列用户电子邮件,这些用户电子邮件会在注册时自动分配给admin的角色。我需要使用该方法检查电子邮件是否在列表中,将其分配给管理员,如果不是,则将其分配给客户。以下是我试图创建它的方法,但它不起作用......

  def set_role
    if self[:email] = "douglaswalter2@gmail.com" 
        self[:role] = "admin" 
    else
      self[:role] = "customer"
    end
  end

然后我也会打电话,

before_create :set_role

如果用户列表在数组中......我应该将此列表保存在seceret.yml中吗?

2 个答案:

答案 0 :(得分:0)

试试这个:

  def set_role
    if self[:email] == "douglaswalter2@gmail.com" 
        self[:role] = "admin" 
    else
      self[:role] = "customer"
    end
  end

答案 1 :(得分:0)

在Ruby中,运营商' ='是一个赋值变量。您需要使用比较运算符' =='。这将检查您正在寻找的条件。

 def set_role
    if self[:email] == "douglaswalter2@gmail.com" 
        self[:role] = "admin" 
    else
      self[:role] = "customer"
    end
  end