railsでOpenID認証 (2)
openid_generatorは,ログイン用のジェネレータとしては草分け的存在のlogin_generatorに仕様があわせられています。なのでlogin_generatorのやり方がそのまま使えます。
ユーザ毎に管理したいモデル(例えばitemとします)とuserモデルとの間では,以下の関係が成り立ちます。
item *--->1 user
これに合わせてDBに列を追加します。itemsテーブルにuser_id列を追加して,usersテーブルのidを外部参照させます。
次にモデル間の関係を記述します。
item.rbでは以下のように。
class Item < ActiveRecord::Base belongs_to :user end
user.rbは↓こんな感じ。
class User < ActiveRecord::Base has_many :items end
今までコントローラの中で,こんな感じにモデルにアクセスしていたと思います。
Item.find(params[:id])
これを特定のuser_idに制限します。
Item.find(params[:id], :conditions => ["user_id=?", @session[:user_id]])
このようにログインしたユーザのidは@session[:user_id]に格納されています。ユーザオブジェクトをとりたいときは
User.find(@session[:user_id])
ですね。