Rails Insights

Defnyddio'r Dull `where` yn Rails yn Effeithlon

Mae Rails, y fframwaith datblygu gwe poblogaidd ar gyfer Ruby, yn cynnig nifer o ddulliau i weithio gyda'r cronfeydd data. Un o'r dulliau mwyaf defnyddiol yw'r dull `where`, sy'n caniatáu i chi wneud ymholiadau i'r gronfa ddata yn hawdd ac yn effeithlon. Yn yr erthygl hon, byddwn yn archwilio sut i ddefnyddio'r dull `where` yn Rails, gan roi enghreifftiau a chyngor ar sut i wneud y gorau o'r dull hwn.

Beth yw'r Dull `where`?

Mae'r dull `where` yn Rails yn caniatáu i chi greu ymholiadau i'r gronfa ddata sy'n dychwelyd recordiadau sy'n bodloni rhai amodau penodol. Mae'n ffordd hawdd o ddynodi'r data sydd ei angen arnoch heb orfod ysgrifennu SQL yn llaw. Mae'r dull hwn yn gweithio gyda'r Active Record, sy'n gyfrifol am reoli'r rhyngwyneb rhwng eich modelau a'r gronfa ddata.

Sut i Ddefnyddio'r Dull `where`

Mae'r dull `where` yn cymryd un neu fwy o ddirprwyadau fel ei darged. Gallwch ddefnyddio'r dull hwn i chwilio am gofrestriadau yn seiliedig ar un neu fwy o faes. Dyma'r strwythur sylfaenol:

Model.where(‘maes = ?’, gwerth)

Mae'r `maes` yn cynrychioli'r enw'r colofn yn y gronfa ddata, a'r `gwerth` yw'r gwerth rydych chi am ei chwilio. Gallwch hefyd ddefnyddio amodau mwy cymhleth, gan ddefnyddio'r fformat canlynol:

Model.where(‘maes1 = ? AND maes2 = ?’, gwerth1, gwerth2)

Enghreifftiau o Ddefnyddio'r Dull `where`

Dyma rai enghreifftiau o sut i ddefnyddio'r dull `where` yn eich cais Rails:

Chwilio am Recordiadau Penodol

Os oes gennych fodel o'r enw `User`, gallwch chwilio am ddefnyddiwr penodol fel hyn:

user = User.where('id = ?', 1).first

Mae'r cod hwn yn dychwelyd y defnyddiwr gyda'r ID 1. Os nad oes defnyddiwr gyda'r ID hwn, bydd yn dychwelyd `nil`.

Chwilio am Ddefnyddwyr gyda'r Un Enw

Gallwch hefyd chwilio am holl ddefnyddwyr gyda'r un enw:

users = User.where('name = ?', 'John')

Mae'r cod hwn yn dychwelyd pob defnyddiwr sydd â'r enw 'John'.

Chwilio gyda Chymhlethdod

Os ydych am chwilio am ddefnyddwyr sy'n bodloni mwy nag un amod, gallwch ddefnyddio'r dull `where` gyda'r amodau AND:

users = User.where('age > ? AND active = ?', 18, true)

Mae'r cod hwn yn dychwelyd pob defnyddiwr sy'n dros 18 oed ac sydd yn weithredol.

Defnyddio'r Dull `where` gyda Chasgliadau

Gallwch hefyd ddefnyddio'r dull `where` gyda chasgliadau i gael gwybodaeth fanwl am eich data. Dyma sut i wneud hynny:

users = User.where('created_at >= ?', 1.week.ago).order('created_at DESC')

Mae'r cod hwn yn dychwelyd pob defnyddiwr a grëwyd yn ystod yr wythnos ddiwethaf, wedi'i drefnu yn ôl y dyddiad creu.

Defnyddio'r Dull `where` gyda Chydrannau

Mae'r dull `where` hefyd yn cefnogi cydrannau, sy'n caniatáu i chi wneud ymholiadau mwy cymhleth. Dyma enghraifft:

users = User.where('age > ? OR name = ?', 18, 'John')

Mae'r cod hwn yn dychwelyd pob defnyddiwr sy'n dros 18 oed neu sydd â'r enw 'John'.

Defnyddio'r Dull `where` gyda Chydrannau a Chasgliadau

Gallwch hefyd gyfuno cydrannau a chasgliadau i wneud ymholiadau mwy cymhleth. Dyma enghraifft:

users = User.where('age > ? AND (name = ? OR name = ?)', 18, 'John', 'Jane')

Mae'r cod hwn yn dychwelyd pob defnyddiwr sy'n dros 18 oed ac sydd â'r enw 'John' neu 'Jane'.

Defnyddio'r Dull `where` gyda'r Dull `pluck`

Os ydych am gael dim ond rhai meysydd penodol o'r cofrestriadau, gallwch ddefnyddio'r dull `pluck` gyda'r dull `where`:

user_names = User.where('active = ?', true).pluck(:name)

Mae'r cod hwn yn dychwelyd rhestr o enwau pob defnyddiwr sydd yn weithredol.

Defnyddio'r Dull `where` gyda'r Dull `find_by`

Os ydych am ddod o hyd i un cofrestriad yn unig, gallwch ddefnyddio'r dull `find_by` yn lle `where`:

user = User.find_by(name: 'John')

Mae'r cod hwn yn dychwelyd y defnyddiwr cyntaf sydd â'r enw 'John'. Os nad oes defnyddiwr o'r fath, bydd yn dychwelyd `nil`.

Cyngor ar Ddefnyddio'r Dull `where` yn Effeithlon

Dyma rai cynghorion i wneud y gorau o'r dull `where` yn Rails:

  • Defnyddiwch amodau penodol: Mae'n well defnyddio amodau penodol i leihau'r nifer o gofrestriadau a ddychwelir.
  • Defnyddiwch `pluck` pan fo angen: Os ydych am gael dim ond rhai meysydd, defnyddiwch `pluck` i leihau'r llwyth ar y gronfa ddata.
  • Cadwch lwybrau clir: Defnyddiwch enwau clir ar gyfer eich meysydd a'ch amodau i wneud eich cod yn haws i'w ddeall.
  • Defnyddiwch `find_by` pan fo angen: Os ydych am ddod o hyd i un cofrestriad yn unig, defnyddiwch `find_by` yn lle `where` i wneud eich cod yn fwy effeithlon.

Casgliad

Mae'r dull `where` yn Rails yn offeryn pwerus ar gyfer gwneud ymholiadau i'r gronfa ddata. Gyda'i gymorth, gallwch ddod o hyd i'r data sydd ei angen arnoch yn hawdd ac yn effeithlon. Drwy ddilyn y cyngor a'r enghreifftiau a roddwyd yn yr erthygl hon, gallwch wella eich sgiliau yn defnyddio'r dull `where` a gwneud eich cais Rails yn fwy effeithlon.

Published: August 13, 2024

© 2024 RailsInsights. All rights reserved.