簡體   English   中英

如何在Rails中應用此過濾器

[英]How to apply this filter in Rails

我有一個稱為language的表,該表有一個稱為lang_code的列。 它具有以下值。

id  lang_code  created_at           updated_at
1   ARA        2010-07-29 15:27:25  NULL
2   CHI        2010-07-29 15:27:25  NULL
3   DAN        2010-07-29 15:27:25  NULL
4   DEU        2010-07-29 15:27:25  NULL
5   ESP        2010-07-29 15:27:25  NULL
6   KOR        2010-07-29 15:27:25  NULL
7   VIE        2010-07-29 15:27:25  NULL

我需要從此表中刪除3種語言(CHI,DAN ad VIE)。 我可以簡單地編寫遷移並從表中永久刪除值。 但是我不想這樣做。 相反,我想在模型級別將它們過濾掉,這樣我對這個特定模型進行的任何操作都不應包含這三種語言。 如何在Rails中做到這一點?

謝謝

使用default_scope

class Language < ActiveRecord::Base
  UNWANTED_LANGUAGES = ["CHI", "DAN", "VIE"]
  default_scope :conditions => ["lang_code not in (?)", UNWANTED_LANGUAGES]
  ...
end
  1. 您創建一個遷移,在其中添加:active列。 設置默認值(EG默認值處於活動狀態)

  2. 在同一遷移中(請謹慎調用Language.reset_column_information)或在另一遷移中,您要處理與(CHI,DAN,VIE)有關的任何數據庫關系。 然后,您將它們停用(無效= true)

  3. 在Language類中,使用default_scope:

    default_scope:conditions => {:active => true}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM