レールにはModel.find(id_number)リクエストがあります。 DBに直接リクエストを作成する可能性はありますか?たとえば、SELECT * FROM users WHERE id = 1
と交換してください。レールの基本はModel.where(id: 1)
?私model.rbでレールとSQLストレートリクエスト
EDIT
私が持っている:(レールコンソールで)
scope :search_import, -> {includes(:translations)}
default_scope -> {self.search_import}
し、要求を次のようになります。
User Load (0.5ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 1 LIMIT 1
User::Translation Load (0.6ms) SELECT `users_translations`.* FROM `users_translations` WHERE `users_translations`.`category_id` IN (1)
しかし、私はしたくありませんUser::Translation
が実行されました(スコープなしの結果は同じです)
なぜARをバイパスしたいですか? –
私が取り組んでいるプロジェクトで、 'User.find(1)'を実行すると 'SELECT * FROM users WHERE id = 1 LIMIT 1'だけではありません。レコードがuniqであることを確認するためにこれを追加するリクエストがあり、すべてのプロジェクトで変更することはできません(モデルのロジックを破る可能性があるため)。だから、私が必要とするものを選択するためのストレートな要求が必要なケースは1つだけです。 –
@AndreyDrozdovは、その論理は 'スコープ'ですか?あなたは 'User.unscoped.find(1)'のようにすることができます – Ursus