使用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
答案 0 :(得分: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