タグ

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

  • 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

  • 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が導入済み

  • Rails3でRSPec2とmachinist2 - Aerialarts

    Rails3でRSpec2とmachinist2を使うための下準備。 $ alias r=rails $ r new testapp -T -d mysql $ cd testapp $ vi config/application.rb # Test::Unitにさよなら $ vi Gemfile # RSpec2とmachinist2を追加 $ bundle install $ r g rspec:install $ r g machinist:install $ vi config/application.rb # fixtureの代わりにblueprintを追加するように $ vi ~/.autotest # DBを毎回クリアする 各種ファイルの編集は下記の通り。 Test::Unitにさよなら -require 'rails/all' +require "active_record

  • 1