У вас есть какие-то другие проблемы
- Ваш
Model
должен быть сингулярным (ваш множественное число)
- Вы упоминаете вы хотите до проверить наличие вашего поиска - наверняка вы бы лучше wi го
.exists?
Модель
Во-первых, вам нужно make sure your model name is Singular
Хотя основной причиной для Rails конвенций, он служит, чтобы предоставить вам более прочной структуры для MVC programming pattern. Важность этого сводится к тому, как Rails построен как основа object orientated
Не вдаваясь в подробности, позвольте мне просто сказать, что по мере продвижения с Rails вы начнете видеть доказательства ориентации объекта Ruby во всей структуре. Это означает, что каждый раз, когда вы выполняете какой-либо метод/создаете какие-либо функции, он будет основываться на объектах.
Таким образом, каждый раз, когда вы вызываете «модель», вы не вызываете класс - вы вызываете объект. Вот почему модели называются сингулярно - они предоставляют вам возможность вызывать серию данных из вашей базы данных, сжимая их все в ваш модельный объект. В смысле Rails он дает вам возможность вызвать User.find 1
, чтобы создать нового пользователя .
Итог: называть свои модели их особым именем
Exists
Это, вероятно, не то, что вам нужно, но есть еще один метод ActiveRecord называется .exists?
, если вы хотите , Это вернет логическое значение (true
/false
) в зависимости от наличия данных из вашего запроса в db.
Когда вы говорите, что вы хотите check database for SIGNIN
, вы бы, возможно, лучше со следующим:
#app/models/user.rb
class User < ActiveRecord::Base
def self.signIn(form)
return self.exists?(username: form[:username], password: form[:password])
end
end
Использование 'Users.where (имя пользователя: форма [: имя пользователя], пароль: форма [: пароль]) .first' – Santhosh
спасибо, это сработало –
Я добавил его в качестве ответа. :) – Santhosh