2013-12-14 17 views
7

Trong Rails 4 tài liệu (http://guides.rubyonrails.org/migrations.html#creating-a-join-table) tôi thấy rằng để thả một bảng hoặc một bảng tham gia, người ta có thể sử dụng các phương pháp sau đây trong dòng lệnh:Rails 4: Làm thế nào để thả hoặc loại bỏ (tham gia) bảng bảng từ cơ sở dữ liệu?

drop_tabledrop_join_table.

Tuy nhiên, nó tiếp tục thêm rằng người ta phải 'cung cấp một khối' - và tôi không biết điều đó trông như thế nào trong thực thi.

Bất kể đây là câu hỏi của tôi: làm cách nào để thả bảng hoặc thả bảng tham gia?

Ngoài ra, khi tôi nói thả, tôi có nghĩa là xóa nó khỏi cơ sở dữ liệu của tôi. Tôi biết tôi không thể xóa di chuyển và không khôn ngoan khi cuộn lại các lần di chuyển vì nó làm hỏng các nỗ lực cộng tác - vì vậy tôi muốn tránh xóa các tệp di chuyển và di chuyển ngược lại nếu có thể.

Tôi đã mắc lỗi khi tạo di chuyển để điền cơ sở dữ liệu. Tôi biết làm thế nào để sửa đổi các cột của bảng (thêm các cột mới, đổi tên chúng và xóa chúng). Tôi chỉ không biết cách thanh tẩy bàn.

Cảm ơn bạn đã xem xét câu hỏi của tôi.

Tôi muốn xóa bảng hoàn toàn khỏi cơ sở dữ liệu của mình. Ứng dụng của tôi đang chạy on Rails 4.

Trả lời

15

Phương pháp drop_join_table là xác định trong tài liệu drop_join_table

Phải mất bảng 1, bảng 2 tên. Ví dụ: bạn có 2 bảng tên categoriesproducts, và tham gia bảng tên categories_products)

Vì vậy, tạo ra một tập tin di chuyển với bất kỳ tên nào bạn thích, sau đó bạn viết mã để xóa tham gia bảng::

def change 
    drop_join_table :categories, :products 
end 

bạn có thể chuyển các tùy chọn khác sang phương thức drop_join_table, các tùy chọn này giống như tùy chọn create_join_table. Nhìn vào phương pháp này để xem thêm tùy chọn.

Ví dụ, nếu bạn tham gia bảng không có quy ước tên tiếp theo, giống như categorization, bạn có thể xác định nó:

def change 
    drop_join_table :categories, :products, table_name: categorization 
end 

Để xóa một bảng, nó là đơn giản hơn với drop_table phương pháp:

def change 
    drop_table :table_name 
end 

Tùy chọn khác có thể được chuyển vào phương thức drop_table, như các tùy chọn của phương pháp create_table

+0

Hey Kien, đây là một brea tuyệt vời kdown. Cảm ơn bạn. – robertjewell

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