初めてRailsを試していて、テストアプリにかなり単純な役割ベースのセキュリティを追加しようとしています。いくつかのグーグルがrails-authorizationがこれを行う方法だと思われたようです。私はREADMEに続き、すべてがうまくいくように見えましたが、今はUser
をRole
に関連付けようとしていますが、失敗します。rails-authorizationを使用してユーザにロールを関連付けるときに 'column "id" does not exist'エラーが発生しました
>> u = User.find(:first)
=> #<User id: 1, login: "cwhit", name: "", email: "[email protected]", crypted_password: "7ac064547fb8992e8e53e936df31657a40f9c5af", salt: "56671492059f8e40eb3d509940944aaba31ebc72", created_at: "2009-03-26 18:06:04", updated_at: "2009-03-26 18:06:04", remember_token: nil, remember_token_expires_at: nil>
>> r = Role.find(:first)
=> #<Role id: 1, name: "ProjectManager", authorizable_type: nil, authorizable_id: nil, created_at: "2009-03-27 11:02:35", updated_at: "2009-03-27 11:02:35">
>> u.has_role r
ActiveRecord::StatementInvalid: PGError: ERROR: column "id" does not exist
LINE 1: ....546623', '2009-03-27 11:42:16.546623', 5, 1) RETURNING "id"
^
: INSERT INTO "roles_users" ("created_at", "updated_at", "role_id", "user_id") VALUES('2009-03-27 11:42:16.546623', '2009-03-27 11:42:16.546623', 5, 1) RETURNING "id"
アムは、私はちょうど愚かな何かをやって、またはこれは既知の問題です。ここに私のscript/console
セッションからの抜粋ですか? rails-authorization
プラグインのGoogleグループの質問にessentially the same errorが見つかりましたが、解決策はありませんでした。
ここに私の基本的な設定です:
- OS X
- のRails 2.3.2
- PostgreSQLの
- プラグイン:
- 安らかな認証
- レール承認
ところでcomposite_primary_keys' 'でこの問題はよく知られており、パッチは2つの完全な年のために利用可能です。残念ながら、パッチは宝石に巻き込まれていません。 http://groups.google.com/group/compositekeys/browse_thread/thread/502e6b0d77cac8c9/682eb7545d01b141 –