Mae Ruby on Rails, neu Rails fel y'i gelwir yn aml, yn fframwaith datblygu gwe sy'n seiliedig ar Ruby. Mae'n cynnig dulliau effeithiol a chynhyrchiol ar gyfer adeiladu apiau gwe. Un o'r nodweddion pwysig yn Rails yw'r gallu i ddefnyddio sgopau, sy'n caniatáu i ddatblygwyr greu ymholiadau a fydd yn cynorthwyo i ddelio â data yn fwy effeithlon. Yn yr erthygl hon, byddwn yn archwilio sut i weithio gyda sgopau yn Ruby on Rails, gan gynnwys eu creu, eu defnyddio, a'u manteision.
Mae sgopau yn ffordd o ddiffinio ymholiadau a gallant gael eu defnyddio i ddynodi set o ddata yn y modelau. Mae sgopau yn caniatáu i chi greu cod sy'n hawdd ei ddarllen ac yn haws i'w gynnal. Mae'n bosib creu sgopau ar gyfer unrhyw fodel yn Rails, a gallant fod yn ddefnyddiol ar gyfer ymholiadau cyffredin a phoblogaidd.
Mae creu sgop yn syml. Gallwch ddefnyddio'r dull scope
yn eich model. Dyma enghraifft o sut i greu sgop sy'n dychwelyd pob defnyddiwr sydd wedi cofrestru yn y mis diwethaf:
class User < ApplicationRecord scope :recently_signed_up, -> { where('created_at >= ?', 1.month.ago) } end
Yn yr enghraifft hon, rydym yn defnyddio'r dull where
i ddiffinio'r amodau ar gyfer y sgop. Mae'r sgop recently_signed_up
yn dychwelyd pob defnyddiwr sydd wedi cofrestru yn y mis diwethaf.
Unwaith y byddwch wedi creu sgop, gallwch ei ddefnyddio fel unrhyw ymholiad arall. Dyma sut y gallwn ddefnyddio'r sgop a grëwyd yn yr enghraifft flaenorol:
recent_users = User.recently_signed_up
Mae'r llinell hon yn creu newidyn recent_users
sy'n cynnwys pob defnyddiwr sydd wedi cofrestru yn y mis diwethaf. Gallwch hefyd ddefnyddio sgopau gyda phob math o ddulliau, fel count
, first
, neu last
.
Gallwch hefyd ddefnyddio sgopau gyda chydrannau eraill. Er enghraifft, os oes gennych sgop arall sy'n dychwelyd defnyddwyr sydd wedi gwneud mwy na 5 o drafodion, gallwch gyfuno'r ddau sgop fel hyn:
class User < ApplicationRecord scope :recently_signed_up, -> { where('created_at >= ?', 1.month.ago) } scope :with_transactions, -> { joins(:transactions).group('users.id').having('COUNT(transactions.id) > 5') } end recent_users_with_transactions = User.recently_signed_up.with_transactions
Mae'r llinell olaf yn creu newidyn sy'n cynnwys pob defnyddiwr sydd wedi cofrestru yn y mis diwethaf ac sydd hefyd wedi gwneud mwy na 5 o drafodion.
Mae nifer o fanteision i ddefnyddio sgopau yn Ruby on Rails:
Gallwch hefyd greu sgopau sy'n derbyn paramedrau. Mae hyn yn caniatáu i chi greu sgopau mwy hyblyg. Dyma enghraifft o sgop sy'n derbyn paramedr i ddiffinio'r cyfnod amser:
class User < ApplicationRecord scope :signed_up_within, ->(time_frame) { where('created_at >= ?', time_frame.ago) } end recent_users = User.signed_up_within(1.month)
Yn yr enghraifft hon, rydym yn creu sgop o'r enw signed_up_within
sy'n derbyn paramedr time_frame
. Gallwch ddefnyddio'r sgop hwn i ddynodi unrhyw gyfnod amser.
Mae sgopau yn nodwedd grymus yn Ruby on Rails sy'n caniatáu i chi greu ymholiadau sy'n hawdd eu darllen, eu cynnal, a'u defnyddio. Mae'n bosib creu sgopau syml neu gymhleth, gan gynnwys paramedrau, a'u defnyddio gyda chydrannau eraill. Mae defnyddio sgopau yn eich helpu i wneud eich cod yn fwy effeithlon a chynhyrchiol.
Os ydych chi'n dechrau gyda Ruby on Rails, neu os ydych chi'n chwilio am ffordd i wella eich cod, mae sgopau yn ffordd wych i ddechrau. Mae'n hawdd eu creu a'u defnyddio, ac maent yn cynnig nifer o fanteision sy'n gwneud eich datblygiad yn haws a mwy effeithlon.
Felly, peidiwch ag oedi! Dechreuwch ddefnyddio sgopau yn eich apiau Ruby on Rails heddiw a mwynhewch y manteision a ddaw gyda nhw.
© 2024 RailsInsights. All rights reserved.