Любопытно, если кто-то знает тонкости find_by
, так как я проверил документацию и не смог найти информацию.Rails `find_by` возвращает огромный ID
Я знаю, что find
Используется, чтобы найти по основным ключам, таким как: @user = User.find(params[:id])
, вернув правильный пользователь.
Прежде чем я исправил свой код, он был @user = User.find_by(params[:id])
и возвратил пользователя с идентификационным способом, превышающим число пользователей в моей БД.
Может ли кто-нибудь помочь мне понять, что происходит под капотом? Что ищет find_by по умолчанию, когда параметр опущен, который возвращает этот странный пользовательский объект?
Спасибо за облегчающий ответ, но не совсем. Специфично для моего приложения, params [: id] = 3, поэтому 'User.find (3)' найти правильного пользователя (3). Однако 'User.find_by (3)' возвращает пользователя с идентификатором 409608538 (путь больше, чем у 100 пользователей семян у меня есть), поэтому мне было просто интересно, как это происходит – Splice114
попробуйте User.find_by (id: 3). Что в итоге? – bosskovic
btw, я не могу воспроизвести то, что вы упомянули в консоли; User.find (3), User.find_by (3), User.find_by (id: 3) все возвращают одинаковый, правильный пользователь. Можете ли вы включить в свой вопрос какую-то копию-вставку с консоли? – bosskovic