6

Tôi khá mới với điều này và tôi đang sử dụng cancan + cho người dùng auth của mình. Tuy nhiên tôi không thực sự chắc chắn có nghĩa là gì để thiết lập một người dùng điển hình HABTM vai trò mối quan hệ cũng không làm tôi thực sự hiểu mối quan hệ HABTM là gì.Cách thiết lập người dùng điển hình Mối quan hệ vai trò HABTM

Bất cứ ai có thể giải thích rõ ràng hay chỉ cho tôi một hướng dẫn hay ví dụ hay?

Trả lời

16

phương tiện HABTM có và thuộc về nhiều người. Về cơ bản bạn cần một bảng như một người đàn ông trung gian để theo dõi nhiều id (được gọi là một bảng thông qua). Khi được tham chiếu như một mối quan hệ vai trò người dùng điển hình của HABTM, họ thực sự có nghĩa là sẽ có một mô hình User, mô hình Role, bảng người dùng, bảng vai trò và bảng roles_users. Đừng quên thêm bảng HABTM - roles_users - table. Một thiết lập điển hình sau:

class User < ActiveRecord::Base 
    has_and_belongs_to_many :roles 
end 

class Role < ActiveRecord::Base 
    has_and_belongs_to_many :users 
end 

Sau đó bạn có thể sử dụng các hiệp hội như bình thường nói User.first.rolesRole.first.users.

Ngoài ra còn có coupleRailscasts về sự cố của bạn.

+0

làm cách nào để bạn tạo bảng users_roles? – Vasseurth

+5

'rails g migration add_users_roles_table' – recursive

+0

Xin lỗi, nhấn enter quá sớm, chỉnh sửa ở trên với các thông tin sau: [gist] (https://gist.github.com/1082098). Sau đó chạy 'rake db: migrate'. Nên làm vậy. – recursive

3

The Ruby on Rails Hướng dẫn viên là một điểm khởi đầu tốt here cũng this hướng dẫn là chính xác những gì bạn muốn

+1

Tôi đang sử dụng hướng dẫn thứ hai, nhưng nó chỉ nói, 'thiết lập mối quan hệ HABTM' không nói cách – Vasseurth

+2

http://mikewilliamson.wordpress.com/2010/07/02/rails-has_and_belongs_to_many/ - hướng dẫn đơn giản trên habtm – Bohdan

+1

Hầu hết các di chuyển UsersHaveAndBelongToManyRoles, làm thế nào để bạn tạo ra nó? – Vasseurth

Các vấn đề liên quan