AMcoder - javascript, python, java, html, php, sql

Վավերացնե՞լ և ActiveRecord մոդելը՝ հիմնված համապատասխան մոդելի տվյալների վրա:

ՍՑԵՆԱՐ.

Given that a model called Edition has its community feature enabled

I want all Records under that Edition to validate for the community field

When the community feature is disabled, the community field will NOT be validated

Հիմնականում ես փորձում եմ գրել մաքսային վավերացման գործառույթ ActiveRecord մակարդակում, որը կստուգի, արդյոք մայր հրատարակությունն ունի ճիշտ/կեղծ արժեք:

Բայց ես վստահ չեմ, թե որն է դա կարգավորելու լավագույն միջոցը: Իմ բնազդը մոտավորապես այսպիսին է, բայց ես, թեև, կստանամ համայնքների արձագանքները.

class Record < ActiveRecord::Base
validate edition_has_communities?

private
  def edition_has_communities?
    if self.edition.communities_enabled
       if community.blank?
          errors.add(:community, "must be filled out for this Edition")
       end
    end
  end
end

Իմ մտահոգությունն այն է, որ այս մեթոդը կախված է վավերացումից առաջ սահմանված հրատարակության հետ կապից, և դա միշտ չէ, որ կարող է այդպես լինել: Արդյո՞ք սա պետք է վավերացվի ճակատային մասում:

Մտքեր.


Պատասխանները:


1

Կարծես թե դա ինձ համար լավ կաշխատի, և եթե դուք մտահոգված եք, թե արդյոք խմբագրության ասոցիացիան դեռ սահմանված է, ինչու՞ պարզապես չավելացնել ստուգում:
if self.edition and self.edition.communities_enabled
Ինձ համար սա վավերացնելու բան չէ ճակատային մասը, կարծում եմ, որ դուք ճիշտ եք, որ սա դրել եք մոդելի մեջ: Կա՞ն բաներ, որոնք երբևէ իսկապես պետք է վավերացվեն ճակատային մասում:

21.04.2010
  • Haha Չափազանց ճիշտ է: :) Ես առաջ կգնամ և այնպես կխփեմ, ինչպես կա: (Եվ ձեր իրավունքը, ես կարող եմ պարզապես չեկ ավելացնել: Երբեմն երդվում եմ, որ չեմ կարող տեսնել անտառը ծառերի համար:) 22.04.2010
  • Քաղցր: Չէի փորձում սայթաքել կամ որևէ այլ բան հարցնելով, թե արդյոք որևէ բան պետք է վավերացվի, թե ոչ, ես իսկապես հետաքրքրված եմ, թե արդյոք մարդիկ կարծում են, որ կան բաներ, որոնք պետք է լինեն: Ուրախ եմ, որ այն աշխատում է. երբեմն ձեզ միայն մեկ զույգ աչք է պետք: 29.04.2010
  • Նոր նյութեր

    Օգտագործելով Fetch Vs Axios.Js-ը՝ HTTP հարցումներ կատարելու համար
    JavaScript-ը կարող է ցանցային հարցումներ ուղարկել սերվեր և բեռնել նոր տեղեկատվություն, երբ դա անհրաժեշտ լինի: Օրինակ, մենք կարող ենք օգտագործել ցանցային հարցումը պատվեր ներկայացնելու,..

    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար
    Տիրապետել հանգստության արվեստին. մշակողի ուղեցույց՝ ճնշման տակ ծաղկելու համար Ինչպե՞ս հանգստացնել ձեր միտքը և աշխատեցնել ձեր պրոցեսորը: Ինչպես մնալ հանգիստ և զարգանալ ճնշման տակ...

    Մեքենայի ուսուցում բանկային և ֆինանսների ոլորտում
    Բարդ, խելացի անվտանգության համակարգերը և հաճախորդների սպասարկման պարզեցված ծառայությունները բիզնեսի հաջողության բանալին են: Ֆինանսական հաստատությունները, մասնավորապես, պետք է առաջ մնան կորի..

    Ես AI-ին հարցրի կյանքի իմաստը, այն ինչ ասում էր, ցնցող էր:
    Այն պահից ի վեր, երբ ես իմացա Արհեստական ​​ինտելեկտի մասին, ես հիացած էի այն բանով, թե ինչպես է այն կարողանում հասկանալ մարդկային նորմալ տեքստը, և այն կարող է առաջացնել իր սեփական արձագանքը դրա..

    Ինչպես սովորել կոդավորումը Python-ում վագրի պես:
    Սովորելու համար ծրագրավորման նոր լեզու ընտրելը բարդ է: Անկախ նրանից, թե դուք սկսնակ եք, թե առաջադեմ, դա օգնում է իմանալ, թե ինչ թեմաներ պետք է սովորել: Ծրագրավորման լեզվի հիմունքները, դրա..

    C++-ի օրական բիթ(ե) | Ամենաերկար պալինդրոմային ենթաշարը
    C++ #198-ի ամենօրյա բիթ(ե), Ընդհանուր հարցազրույցի խնդիր. Ամենաերկար պալինդրոմային ենթատող: Այսօր մենք կանդրադառնանք հարցազրույցի ընդհանուր խնդրին. Ամենաերկար palindromic substring...

    Kydavra ICAReducer՝ ձեր տվյալների ծավալայինությունը նվազեցնելու համար
    Ի՞նչ է ICAReducer-ը: ICAReducer-ն աշխատում է հետևյալ կերպ. այն նվազեցնում է նրանց միջև բարձր փոխկապակցված հատկանիշները մինչև մեկ սյունակ: Բավականին նման է PCAreducer-ին, չնայած այն..