2011-12-18 39 views

Trả lời

37

nên mạng has_may người sử dụng và người sử dụng belongs_to mạng.

Chỉ cần thêm network_id vào bảng người dùng nếu bạn vẫn chưa làm và vì đó là foreign_key đáng để lập chỉ mục nó.

rails generate migration AddNetworkIdToUsers

class AddNetworkIdToUsers < ActiveRecord::Migration 
    def change 
    add_column :users, :network_id, :integer 
    add_index :users, :network_id 
    end 
end 

Trong mô hình mạng làm

class Network < ActiveRecord::Base 
    has_many :users 
end 

trong mô hình sử dụng:

class User < ActiveRecord::Base 
    belongs_to :network 
end 
+0

Không cần di chuyển, NETWORK_ID là (theo câu hỏi) đã có trong bảng – klaffenboeck

+7

đúng là :). chỉ dành cho người đọc trong tương lai để họ biết cách thêm id. – daniel

+0

điểm hợp lệ, đã đồng ý. Upvoted bạn một lần nữa và xin lỗi về điều đó :-) – klaffenboeck

7

Theo cơ sở dữ liệu thiết lập của bạn, bạn chỉ cần thêm dòng sau dòng vào các kiểu máy của bạn:

class User < ActiveRecord::Base 
    belongs_to :network 
    # Rest of your code here 
end 

class Network < ActiveRecord::Base 
    has_many :users 
    # Rest of your code here 
end 

Trong trường hợp bạn có thiết lập không có network_id, bạn nên dùng câu trả lời daniels.

1

Đây là cách của tôi: chạy:

$rails generate migration AddNetworkIdToUsers 

sau đó cấu hình tập tin chuyển đổi:

class AddNetworkIdToUsers < ActiveRecord::Migration[5.1] 

    def up 

    add_column :users, :network_id, :integer 
    add_index :users, :network_id 
    end 

    def down 

    remove_index :users, :network_id 
    remove_column :users, :network_id 
    end 

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