検索機能、つけちゃった:-)
いや、もう、フォームとか扱うのって、面倒な感じがして、嫌いなんだよねぇ、昔っから。
つうか、ね?
クエリ受け取ってウラで動くスクリプトが必要なのを作るのって、どうも苦手意識というか、なんというか...
なんだけど、ほら、なんて云うの?
あまりビジターがいないとしても、偶に覗きにいらっしゃる、ええーっと、Google大先生とか?wの為にも、ネタ作らないといけないじゃない?
で、AJAX関係やろうかな、と思ってたんだけど、でも、Event.observerのセットをどうするか考えてたら、あんまり良い案が浮かばなかったんで、とりあえず、検索を、とwww
で。
まあ、どことは云わないけど、mixiみたいに、ウィンドウの右上に検索窓をつけて、そこに文字列をいれれば、ユーザを検索してくれる、というヤツを。
が。
- 検索の為のフィールドは一つ
- 空白文字による、複数キーワードでの検索に対応(ANDのみ)
- モデルはUser
- Userモデルの内、:nickname、:family_name、:middle_name、:given_name、:emailを検索対象とする
という感じ、よくあるよね?
でも、どう:conditionsを書けばいいのか、サッパリ解らんwww
そりゃあ、調べまくりましたともwww
もう、眠いよパトラッシュっ!
参考にしたのは、
この辺。
で、追加したコードが、こんな感じ。
def search @search = Array.new @search << params[:search].split(/ /) @search = @search.delete_if{|word| word.empty?} @search = @search.map.join("%") @users = User.paginate(:page => params[:page], :per_page => params[:per_page]||= 10, :order => params[:order], :conditions => ["(nickname || family_name || middle_name || given_name || email) like ?", "%" + @search + "%"]) flash[:notice] = "User was Not Found" unless @user render(:action => "index") end
...なんか、ブサイクだよねぇ......
ひたすら@searchを加工している姿が、なんか、もう、必死過ぎwww
アラフォーさん達の婚活くらいにwwwww
まあ、それはヨシとしてwww
一番始めにArray.newしているのは、params[:search]の文字列に空白文字が含まれていないと、Arrayにならず、delete_ifでNoMethodエラーが返ってくるから。
renderで飛ばしているindexアクションは、Userモデルの一覧になっていて、will_paginateでページネイションしているから、こっちもそうした。
んで、ビュー側では、こんなのを追加。
<%- form_tag(search_admin_users_path) do -%> <%= text_field_tag(:search) %> <%= submit_tag("Search") %> <%- end -%>
以外に、こんな単純なことでも、いざ、探してみると、中々見つからないんだよねぇー。
もう、朝になっちゃったよ...