0

使用 RubyMotion 时,我使用 NanoStoreInMotion 创建了一个数据库。我可以使用用户参数查询数据库,但如果电话号码无效,则会引发错误并破坏我的应用程序。我的问题是,如果我试图编写我的 if/else 语句来读取好像电话变量是有效的“登录”,elsif“抛出警报视图”,我在 elsif 部分缺少什么?官方登录部分有效。

def main_login
  phone = @login_field.text
  user = User.find(:phone_number => "#{phone}")


  if user[0].phone_number == phone
    controller = UserLoggedInController.alloc.initWithUser(@user)
    self.navigationController.pushViewController(controller, animated: true)
  elsif user == []
    prompt = UIAlertView.alloc.initWithTitle("Checked In",
                  message: "Not a valid login",
                  delegate: nil,
                  cancelButtonTitle: "Close",
                  otherButtonTitles: nil)   
  prompt.show

  end 
end
4

1 回答 1

0

你的逻辑有问题。

以下代码应该可以工作。

def main_login
  phone = @login_field.text
  users = User.find(:phone_number => "#{phone}")

  if users == nil or users == []
    prompt = UIAlertView.alloc.initWithTitle("Checked In",
                  message: "Not a valid login",
                  delegate: nil,
                  cancelButtonTitle: "Close",
                  otherButtonTitles: nil)   
    prompt.show
  elsif users[0].phone_number == phone
    controller = UserLoggedInController.alloc.initWithUser(users[0])
    self.navigationController.pushViewController(controller, animated: true)
  end 
end
于 2013-06-24T07:37:04.177 回答