[前][次][番号順一覧][スレッド一覧]

rails:1584

From: Masahiro Utsumi <utsumi@t...>
Date: Wed, 30 Aug 2006 17:14:54 +0200
Subject: [rails:1584] Re: 検索機能について

内海ベルギーです。

DBの質問だったのでDBのことを考えていましたが、ここはRailsのMLなので
Rails内で解決する案もひとつ。

message varchar(5000),
message_hidden varchar(5000)

とフィールドをひとつ追加します。

modelsの中で

def before_update
    self.message_hidden = self.message.gsub!(/<hidden>.*?<\/hidden>/,"***")
end
def before_save
    before_update
end

権限のない人は message_hidden フィールドで検索、表示します。

いかがでしょうか?



> 内海@ベルギーです。
> 
> > こんにちは、<hidden>小林</hidden>です。
> >                       ↓
> > こんにちは、**です。
> > 
> > といった感じです。
> > 別テーブルに保管するとこういった置換もほんの少し手間ですね。
> > かといってシンプルな方法も存在しなさそうですが。。。
> 
> 元データが insert/update された時にトリガーを使って、別テーブルに隠
> したい部分を消したものを保存すれば良いのではないでしょうか?
> 検索は別テーブルを使って、表示は元テーブルを使う。
> 
> もう一歩進めれば、あらかじめ検索インデックスを作るプログラムを書いて
> おいて、検索はそのインデックスでおこなうという手もありますね。
> 「なまず」がやってるようなことをすると言う感じです。



--
ML: rails@r...
使い方: http://QuickML.com/

[前][次][番号順一覧][スレッド一覧]

      1573 2006-08-28 08:30 [yoshikazu1_koba@n...] 検索機能について                        
      1575 2006-08-29 04:01 ┗[ochi@c...           ]                                       
      1577 2006-08-29 18:03  ┗[yoshikazu1_koba@n...]                                     
      1578 2006-08-29 20:43   ┗[someeda@g...        ]                                   
      1579 2006-08-30 04:44    ┣[ayumu.aizawa@g...   ]                                 
      1581 2006-08-30 16:16    ┃┗[yoshikazu1_koba@n...]                               
      1582 2006-08-30 16:39    ┃ ┗[ayumu.aizawa@g...   ]                             
      1585 2006-08-30 17:33    ┃  ┗[yoshikazu1_koba@n...]                           
      1580 2006-08-30 16:06    ┗[yoshikazu1_koba@n...]                                 
      1583 2006-08-30 16:55     ┗[utsumi@t...         ]                               
->    1584 2006-08-30 17:14      ┗[utsumi@t...         ]                             
      1586 2006-08-30 17:37       ┣[yoshikazu1_koba@n...]                           
      1587 2006-08-30 17:54       ┗[utsumi@t...         ]