on Rails : rails.elの使い方をかいつまんでまとめる
これの,review.zipの中のindex.htmlを読みながら.
コーディング
Snipets
C-c p
rhtml(ビュー)ファイルの編集中,範囲を選択してC-c pってすると,その選択した部分を切り取って新しくファイルを作ってくれる.pは,partialのpと覚えれば良い.んで,その切り取った部分の名前をつけられる._form.rhtmlみたいなサブテンプレートを作ってくれるんだな.
例)
- before
<h1>新規スケジュール</h1> <%= start_form_tag({:action => 'create'})%> <!-- ここから --> <%= error_messages_for 'schedule' %> <p><label for="schedule_datetime">日付</label><br/> <%= datetime_select('schedule', 'datetime', :use_month_numbers => true) %></p> <p><label for="schedule_title">タイトル</label><br/> <%= text_field('schedule', 'title') %></p> <p><label for="schedule_content">内容</label><br/> <%= text_area('schedule', 'content', {'cols' => 40, 'rows' => 10}) %></p> <!-- ここまでを選択 --> <%= submit_tag "新規作成" %> <%= end_form_tag %>
選択したら,C-c pすると,Partial name?と聞かれるので,そこに名前をformと入力すると・・・
- after
元のファイルはこう(↓)なって,
<h1>新規スケジュール</h1> <%= start_form_tag({:action => 'create'})%> <%= rendar :partial => "form" %> <%= submit_tag "新規作成" %> <%= end_form_tag %>
_form.rhtmlが選択範囲を元に作成される.DRYを徹底したい物好きにはたまらない.
ナビゲーション
Gotoメニュー
C-c g K
C-c g Kと押すと,Gotoメニューを開く.Kは,以下のうちのどれかを当てはめる.ちなみに,普通に小文字でもOK.
- M - Model
- C - Controler
- H - Helper
- L - Layout
- S - Stylesheet
- J - Javascript
- G - miGration ←うわぁ,無理矢理っ
何故かViewがない.なんで?
これ,ただ単にそのモデルなりコントローラなりを開くってだけで,例えばビューのアクションの上でC-c g Cとしても,そのアクションがあるコントローラのアクションのとこにカーソルが移動するほどに親切ではない.
Rails finds
C-c f K
大層な名前だけど,C-x C-fのRails特化版ってだけ.使い方は,C-c f K.このKはGotoメニューのそれと同じで,たとえばコントローラ(app/controllers/hoge.rb)を編集中にC-c f mとすると,app/models/の下を検索するC-x C-fになるってだけ.Gotoメニューとの使い分けはcollectとmapとの使い分けのようにそれほど差が無いように思える.
関係してるファイルにスイッチ
M-S-UpもしくはM-S-Down
カーソルがコントローラのアクションの中にあるときにM-S-Upとコマンドを打つと,該当するビューに移動できる.ビューテンプレートを編集しているときは,逆に該当しているコントローラのアクションに移動できる.もし幾つか該当するファイルがある場合,M-S-Downとコマンドを打つと一覧が表示される.また該当するビューが無い場合は新規ファイル作成をするか問われる.
行から関係しているファイルにスイッチ
C-Return
C-u C-Return
- redirect_to
- render
- link_to
のある行で,C-Returnをするとそのコントローラのアクションもしくはその:action先のビューに飛べる.ビューからコントローラのアクションに飛ぼうと思うと,C-u C-Returnと打たないと飛べないみたい.C-Returnだけだと,コントローラ#アクションって表示されるか,対応しているビューが無い場合は新しくビューを作るか問われる.
form_tagとかの:actionとかでも飛べれば嬉しいんだけどな.いっそ:actionに関連づけてくれれば良いのになー.
しかしなが,相当クイックにファイルを移動できて,恐らく一番使うコマンド.
ログ
C-c l
ログファイルを見る.C-c lと打つとEnvironmentを聞かれるので,development,test,productionのうちのどれかを入力.developmentもしくはtestって打つと,Emacsの反応が無くなって返ってこなくなる怖さがある.返ってくるけど.テストドリブンだと,testって打つのは鬼門だと思う.
Rails scripts
ターミナルでぺちぺち打つより,Emacsのコマンドで色んなスクリプトを実行しよう.Rakeとかscript/generate scaffoldとか.基本はC-c s *.sはscriptのs!(だと思う)
Generators
C-c s g K
ターミナルでscript/generate Kって打つのと同じ.Kは,以下の通り.
- m - Model
- c - Controller
- s - Scaffold
- g - miGration
Destructors
C-c s d K
ターミナルでscript/destroy Kと打つのと同じ.KはGeneratorsのと同じ.
日本語で言うと廃物焼却炉なんだな.おっそろしい.
Rake
C-c s r
いわゆるRake.C-c s rでRake task:と聞かれるので,db:migrateなりなんなり打つが良いよ.
ConsoleとBreakpointer
C-c s c
C-c s b
ConsoleもBreakpointerもまともに使った覚えが無い.そりゃまだ暦が浅いからだろうけど,やり込んでいる人にとってはとても嬉しいに違いない.
C-c s cと打つと,Emacsの画面が2分割されて下画面にコンソールが出現.ただ,当たり前やけどreadlineは対応していません:p
HTTPサーバとブラウザの統合
ブラウザ自動起動
C-c F5あるいはC-u C-c F5
コントローラかビューを弄ってるときに,C-c F5と打つと,現在弄ってるアクションでブラウザが開く.
C-u C-c F5と打つと,パラメータ無しでブラウザを開く.・・・普通に開いたらパラメータなんて無いんじゃないかとか思う.