タグ

ブックマーク / archive.aerial.st (4)

  • ActiveSupport::Concern - Aerialarts

    以前書いたモジュールの特異メソッドをincludeして使うと同じことが、ActiveSupport::Concernを使うことでもうちょっと綺麗に書ける。 module A extend ActiveSupport::Concern included do # Aがincludeされた際に、includeしたクラスのコンテキストで実行される end module InstanceMethods def instance_method_of_a p "instance_method_of_a" end end module ClassMethods def class_method_of_a p "class_method_of_a" end end end class B include A end こんなモジュールをとあるクラスBでincludeすることで、 InstansMethods

    kamipo
    kamipo 2012/09/18
  • has_manyな関連先をまとめてINSERTする - Aerialarts

    fields_for、accepts_nested_attributes_forを使って、has_manyな関連先をまとめてINSERTする方法。ソースはgithubに上げておいた。ちなみにRails 3.0.8。 Post has_many Tags through Taggingsというモデルがあったとする。 とりあえずscaffoldはこんな感じ。Taggingだけは画面が要らないのでmodelだけ。 $ rails g scaffold posts title:string text:text $ rails g scaffold tags name:string $ rails g model tagging post:references tag:references $ rake db:migrate コードの修正で重要なのは次の2点。 app/models/post.rb

    kamipo
    kamipo 2012/09/15
  • scopeでtwitterっぽいルーティング - Aerialarts

    Ruby on Rails 3 アプリケーションプログラミング」のルーティングの項をパラパラとめくっていたら、scopeを使ってtwitterっぽくトップレベル(?)にユーザ名を持ってくるようなルーティングができることを知ったのでメモ。 概要 例えばroutes.rbには次のように記述したとする。 scope ':uid' do resources :todos end このとき次のようなURLでアクセスすると、USERNAMEの部分をparams[:uid]で受け取ることができる。 http://scope-routing-sample.dev/USERNAME/todos サンプルアプリを作ってみた 早速サンプルのTODOアプリを作ってgithubに上げてみた:scope-routing-sample 次の手順で動く、はず(bundler, rvm, pow, powderが導入済み

    kamipo
    kamipo 2012/05/15
  • CassandraをSnow Leopardで動かす - Aerialarts

    CassandraをSnow Leopardで動かす方法。 Javaの設定 ~/.zshrcに次の記述を追加する。 export JAVA_HOME=$(/usr/libexec/java_home) export PATH=$JAVA_HOME/bin:$PATH Cassandraのインストール まずディレクトリを掘る。 1つはログ用ディレクトリ。 mkdir -p /var/log/cassandra touch /var/log/cassandra/system.log chown -R `whoami` /var/log/cassandra 2つ目はデータ用ディレクトリ。デフォルトらしい。 mkdir -p /var/lib/cassandra chown -R `whoami` /var/lib/cassandra 今回はコンパイル済みバイナリを落としてそれを使う。 tar x

  • 1