2012年2月23日木曜日

[Rails]Gravatarの写真を表示

Gravatarに登録された写真をRailsで表示させるメモ。

Userモデルにemailというカラムがあり、そこにGravatarに登録済みのメールアドレスが入っているものとして。


まずはビューの編集から。


つぎにavatar_urlというメソッドの定義をapplication_helper.rbにでも書いておく。
app/helpers/application_helper.rb


その他、写真のサイズやデフォルトの写真を設定したいときなどは。。。
app/helpers/application_helper.rb

2012年2月20日月曜日

[JavaScript]連番idをつけていくには

これでboxというクラスがついたdiv要素にたいして、OCbox1、OCbox2、OCbox3というidが順番にふられていきます。

2012年2月8日水曜日

[Rails]ファイルのアップロード・ダウンロード

ファイルのアップロード・ダウンロードの実装メモ。

Documentモデルにfileというカラムを用意しておき、
そこにファイル名だけ保存する。

ファイル自体はpublicフォルダ配下にdocsというフォルダを作成して
そこに保存していくようにする。

scaffoldで作成されたコードから変更を加えていく。
まずはコントローラの設定。

app/controller/documents_controller.rb


save_fileアクションはファイルを保存したあと、
original_filenameメソッドで取得したファイル名を返す。

つぎにarchiveアクションのルーティングの設定をしておく。

config/routes.rb


最後にビューの設定。
form_forメソッドで、:multipartオプションを有効にしておくのを忘れずに。
fileldのヘルパーはfile_fieldに変更。

app/views/documents/_form.html.erb


app/views/documents/index.html.erb


これでファイルの保存ができ、保存したファイルはリンクをクリックして
ダウンロードできるようになる。

2012年2月7日火曜日

[Rails]acts_as_listでモデルオブジェクトの並び替え

ブラウザでモデルオブジェクトを並べ替えたりしたいってときは、acts_as_list
というgemを使うと便利。

とりあえず、リスト表示されたデータの横についてる矢印を押すと順番が入れ替わるって風なのを目指します。

Categoryと1対nのItemというモデルがあったとして。
まず、Gemfileに以下のコードをいれてbundle installする。


つぎにItemにpositionというカラムを追加。


$ rails g migration AddPositionToItem position:integer
$ rake db:migrate


つぎはモデルの編集。

app/models/ctegory.rb

app/models/item.rb


続いてコントローラーを編集。

app/controllers/items_controller.rb


あとはルーティングの設定をして、ビューを編集すればおっけい。

config/routes.rb

app/views/items/index.html.erb