Railsでモデルの並び順を変える

railsでmodelを取るとき

@user = User.all

とかでとれますが、順番をつけるなら

@user = User.all.order('id DESC')

とすれば、idの降順(昇順ならDESC外すか、ASC)になります
DESCって何?となる人のためには

@user = User.all.order(:id).reverse_order

のほうがいいかもしれません

gitで作業を一時的に退避させて違う作業をする

gitでファイル管理して作業中、急な依頼が..だいぶきりが悪い..
そんなときにはgit stash

$ vim sample.txt
とかでがーーーと作業中、急な依頼

$ git stash save
Saved working directory and index state WIP on master: 6ea09e4 add sample3
HEAD is now at 6ea09e4 add sample3

などと、変更したファイルがなかったことになって、最後のコミットへ戻ります

急な依頼を対応して..
もとに戻すには

$ git stash list
stash@{0}: WIP on master: 6ea09e4 add sample3

stashした数だけ保存されてます
最新を元に戻すなら
$ git stash pop

戻したいものを指定するなら
$ git stash stash@{0}

とすればいいです

stashたまに便利です

Rubyで何年何ヶ月差があるか表示してみる

Rubyで2つの日付の差を調べて、何年何ヶ月開いているかを書いてみました

[code lang=ruby]
require "date" # — 1.

today = Date.today
someday = Date.new(2012, 10, 10)

today_months = today.year * 12 + today.month # — 2.
someday_months = someday.year * 12 + someday.month

months_diff = today_months – someday_months

year, month = months_diff.divmod(12) # — 3.

p "#{year}年#{month}ヶ月"
[/code]

  1. dateクラスは組み込みクラスでないので、require
  2. 日付から年も月数になおして、月数の合計を求めます
  3. divmodで割り算した商とあまりを変えします

こんな感じでした

UbuntuのVimでコピペを使う

Ubuntu 14.04で vimを使っています

vimは
$ sudo apt-get install vim
とすれば入ります

vim内だと
yy
p
とかで、ヤンクして1行コピー、ペーストができますが、他のエディタに貼り付ける時(いわゆるコピペ)ができるかは

vimで
:version

:version

VIM - Vi IMproved 7.4 (2013 Aug 10, compiled Jan  2 2014 19:39:59)
適用済パッチ: 1-52
Modified by pkg-vim-maintainers@lists.alioth.debian.org
Compiled by buildd@
Huge 版 with GTK2 GUI.  機能の一覧 有効(+)/無効(-)
+acl             +cmdline_compl   +diff            +find_in_path    +keymap          +modify_fname    +mouse_xterm     +profile         -sniff           +termresponse    +vreplace        -xterm_save
+arabic          +cmdline_hist    +digraphs        +float           +langmap         +mouse           +multi_byte      +python          +startuptime     +textobjects     +wildignore      +xpm
+autocmd         +cmdline_info    +dnd             +folding         +libcall         +mouseshape      +multi_lang      -python3         +statusline      +title           +wildmenu
+balloon_eval    +comments        -ebcdic          -footer          +linebreak       +mouse_dec       -mzscheme        +quickfix        -sun_workshop    +toolbar         +windows
+browse          +conceal         +emacs_tags      +fork()          +lispindent      +mouse_gpm       +netbeans_intg   +reltime         +syntax          +user_commands   +writebackup
++builtin_terms  +cryptv          +eval            +gettext         +listcmds        -mouse_jsbterm   +path_extra      +rightleft       +tag_binary      +vertsplit       +X11
+byte_offset     +cscope          +ex_extra        -hangul_input    +localmap        +mouse_netterm   +perl            +ruby            +tag_old_static  +virtualedit     -xfontset
+cindent         +cursorbind      +extra_search    +iconv           +lua             +mouse_sgr       +persistent_undo +scrollbind      -tag_any_white   +visual          +xim
+clientserver    +cursorshape     +farsi           +insert_expand   +menu            -mouse_sysmouse  +postscript      +signs           +tcl             +visualextra     +xsmp_interact
-clipboard       +dialog_con_gui  +file_in_path    +jumplist        +mksession       +mouse_urxvt     +printer         +smartindent     +terminfo        +viminfo         +xterm_clipboard

とずらーとでますが
-clipboard
となっているとコピペが効きません

$ sudo apt-get install vim-gtk
とやるだけで
+clipboard
になりヤンクするだけで、他のエディタなどにペースト(貼り付け)できます