6

私はこれで新しく、私はユーザー認証のためにcancan + deviseを使用しています。しかし、一般的なユーザーのHABTMロールの関係を設定することが何を意味するのか、またHABTMの関係が本当に理解できるのかどうかはわかりません。一般的なユーザーのHABTMの役割の関係を設定する方法

誰でもそれを本当にうまく説明できますか、良いチュートリアルや例を教えていただけますか?

答えて

16

HABTM手段をしたい正確に何であり、多くに属します。あなたは基本的に複数のid(throughテーブルと呼ばれる)を追跡するために中間の人間としてテーブルを必要とします。一般的なユーザーのHABTMロールの関係として参照される場合、実際にはUserモデル、Roleモデル、ユーザー表、役割表、およびroles_users表が存在することを意味します。 HABTM - roles_users - テーブルを追加することを忘れないでください。典型的なセットアップは、次のとおりです。

class User < ActiveRecord::Base 
    has_and_belongs_to_many :roles 
end 

class Role < ActiveRecord::Base 
    has_and_belongs_to_many :users 
end 

あなたはその後、User.first.rolesRole.first.usersを言って、通常のような関連付けを使用することができます。

問題ではcoupleRailscastsもあります。

+0

users_rolesテーブルはどのように作成しますか? – Vasseurth

+5

'rails g migration add_users_roles_table' – recursive

+0

申し訳ありませんが、すぐに入力してください。上記の情報を[gist](https://gist.github.com/1082098)で編集してください。次に 'rake db:migrate'を実行します。それはそれを行う必要があります。 – recursive

3

Railsのガイド上のRubyは良い出発点hereあるにもthisチュートリアルでは、

+1

私は第2のチュートリアルを使用していますが、「HABTM関係を設定する」とは言わないだけです – Vasseurth

+2

http://mikewilliamson.wordpress.com/2010/07/02/rails-has_and_belongs_to_many/ - habtmの簡単なチュートリアル – Bohdan

+1

ほとんどの場合、UsersHaveAndBelongToManyRolesの移行がありますが、どのように生成しますか? – Vasseurth

関連する問題