Mae Rails, y fframwaith datblygu gwe poblogaidd ar gyfer Ruby, yn cynnig dulliau cryf ar gyfer rheoli data a chynnal cywirdeb. Un o'r nodweddion pwysicaf yw'r gallu i greu gwirfoddoliadau custom, sy'n caniatáu i ddatblygwyr sicrhau bod y data a dderbynnir gan y cais yn cwrdd â gofynion penodol. Yn yr erthygl hon, byddwn yn archwilio sut i greu gwirfoddoliadau custom yn Rails, gan ddefnyddio enghreifftiau cod a phrosesau clir.
Mae gwirfoddoli yn broses sy'n sicrhau bod data a dderbynnir gan fodelau yn cwrdd â gofynion penodol cyn iddynt gael eu cadw i'r gronfa ddata. Mae Rails yn cynnig sawl dull gwirfoddoli, gan gynnwys:
Mae gwirfoddoliadau adeiladol fel validates_presence_of
a validates_uniqueness_of
yn ddefnyddiol, ond weithiau mae angen mwy o reolaeth. Dyma ble mae gwirfoddoliadau custom yn dod i'r amlwg.
Mae creu gwirfoddoliadau custom yn Rails yn syml. Mae angen i chi ddilyn y camau canlynol:
Yn gyntaf, bydd angen i chi greu model. Gadewch i ni gymryd enghraifft o fodel User
.
class User < ApplicationRecord # Gwirfoddoliadau custom yma end
Yna, gallwch ychwanegu gwirfoddoliad custom. Mae hyn yn cael ei wneud trwy ddefnyddio'r dull validate
. Dyma enghraifft o wirfoddoliad sy'n sicrhau bod y cyfenw yn dechrau gyda llythyren fawr:
class User < ApplicationRecord validate :surname_starts_with_capital private def surname_starts_with_capital unless surname[0] =~ /[A-Z]/ errors.add(:surname, "dylai'r cyfenw ddechrau gyda llythyren fawr") end end end
Yn yr enghraifft hon, rydym wedi creu dull private o'r enw surname_starts_with_capital
sy'n gwirio'r cyfenw. Os nad yw'n dechrau gyda llythyren fawr, rydym yn ychwanegu neges gwall i'r errors
.
Pan fyddwch yn creu neu'n diweddaru defnyddiwr, bydd y gwirfoddoliad custom yn cael ei weithredu. Dyma sut y gallai edrych:
user = User.new(surname: "smith") if user.valid? user.save else puts user.errors.full_messages end
Os yw'r cyfenw yn dechrau gyda llythyren fawr, bydd y defnyddiwr yn cael ei gadw. Os nad yw, bydd y neges gwall yn cael ei harddangos.
Gallwch hefyd greu gwirfoddoliadau custom sy'n derbyn paramedrau. Dyma enghraifft sy'n gwirio a yw'r oedran yn y ffin benodol:
class User < ApplicationRecord validate :age_within_range private def age_within_range if age < 18 || age > 65 errors.add(:age, "dylai fod rhwng 18 a 65") end end end
Yn yr enghraifft hon, rydym yn gwirio a yw'r oedran yn y ffin rhwng 18 a 65. Os nad yw, rydym yn ychwanegu neges gwall i'r errors
.
Gallwch hefyd ddefnyddio dulliau gwirfoddoli eraill i greu gwirfoddoliadau mwy cymhleth. Dyma enghraifft sy'n gwirio a yw'r cyfenw a'r enw cyntaf yn gyfatebol:
class User < ApplicationRecord validate :surname_matches_first_name private def surname_matches_first_name if surname.downcase == first_name.downcase errors.add(:surname, "dylai'r cyfenw fod yn wahanol i'r enw cyntaf") end end end
Mae'r enghraifft hon yn gwirio a yw'r cyfenw a'r enw cyntaf yn gyfatebol, gan ychwanegu neges gwall os ydynt yn cyfateb.
Gallwch hefyd ddefnyddio regex i wirfoddoli data. Dyma enghraifft sy'n gwirio a yw'r cyfeiriad e-bost yn gywir:
class User < ApplicationRecord validate :email_format private def email_format unless email =~ /\A[\w+\-.]+@[a-z\d\-.]+\.[a-z]+\z/i errors.add(:email, "dylai fod yn gyfeiriad e-bost dilys") end end end
Mae'r enghraifft hon yn defnyddio regex i wirio a yw'r cyfeiriad e-bost yn gywir. Os nad yw, bydd neges gwall yn cael ei ychwanegu.
Os ydych chi'n gweithio gyda ActiveModel, gallwch greu gwirfoddoliadau custom yn yr un ffordd. Dyma enghraifft sy'n dangos sut i wneud hyn:
class User include ActiveModel::Model attr_accessor :surname, :first_name validate :surname_matches_first_name private def surname_matches_first_name if surname.downcase == first_name.downcase errors.add(:surname, "dylai'r cyfenw fod yn wahanol i'r enw cyntaf") end end end
Mae'r enghraifft hon yn dangos sut i ddefnyddio ActiveModel i greu gwirfoddoliadau custom yn y model.
Mae gwirfoddoliadau custom yn Rails yn cynnig dulliau pwerus i sicrhau bod data yn cwrdd â gofynion penodol. Trwy ddefnyddio'r dulliau a ddisgrifiwyd yn yr erthygl hon, gallwch greu gwirfoddoliadau sy'n addas ar gyfer eich cais. Mae'r gallu i greu gwirfoddoliadau custom yn gwneud Rails yn fframwaith hyblyg a chryf ar gyfer datblygu gwe.
Gobeithio bod yr erthygl hon wedi bod o gymorth i chi ddeall sut i greu gwirfoddoliadau custom yn Rails. Peidiwch ag oedi i archwilio a chreu eich gwirfoddoliadau eich hun!
© 2024 RailsInsights. All rights reserved.