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.