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.
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.
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)
Dyma rai enghreifftiau o sut i ddefnyddio'r dull `where` yn eich cais Rails:
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`.
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'.
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.
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.
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'.
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'.
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.
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`.
Dyma rai cynghorion i wneud y gorau o'r dull `where` yn Rails:
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.
© 2024 RailsInsights. All rights reserved.