カテゴリのリンクリスト作ってる時の一人言

ajaxのルーティング

ajaxのルーティングは普通にそれを発火させたいページを見て

それがlocalhost3000みたいなルートページだったら普通通りに

get 'url', to : controller#action   もっとajaxっぽく言うなら

get 'ajaxのアクション名', to:controller名#ajaxのメソッド名が普通って感じ。

変にhomeコントローラーとかにネストさせるとurlの指定が面倒になる。

 

そしてlocalhost3000/items/newとかlocalhost3000/items/3/editとかだと

resources :items do
 
collection do
get 'get_category_children', defaults: { format: 'json' }
get 'get_category_grandchildren', defaults: { format: 'json' }
end

member do
get 'get_category_children', defaults: { format: 'json' }
get 'get_category_grandchildren', defaults: { format: 'json' }
end
 
end

 こんな感じでネストさせる。

だからajaxだからといって特別なわけじゃない。問題は定石を知らないとajaxのurlのとこ何書くんだっけ、ルーティングってネストさせるっけ?みたいにパニクること。まずは普通のルーティングに習熟するのが肝要。

 

2やっぱりthisは便利

前にカテゴリのフォーム作った時はfieldが一つだけだったのでidの取得をクラス名だかid名でやってたけど、リストはずらっと並べるからクラス名で取得すると一番最初のやつだけ取得してしまった。こういうカスタムデータ取得する時にthisじゃないとだめだよなぁー、とちょいハマりして思った。

 

 

その他

link_toで文面指定しなかったら何処に飛ぶかid入りで見れるから便利。だけど文面入れないとうまく飛べなかったりするから注意。

表示消したい時はdisplay:hidden;じゃなくてvisibility:hidden;

出したかったらvisibility:visible;あと、visiblityじゃなくてvisibilityね