chỉ là một lý thuyết , không chắc chắn cách này sẽ làm việc trong ứng dụng thực tế:
tạo models
đặt tên như ActiveRecord
ước đòi hỏi, ví dụ cho bảng aaa_bbb_ccc_ddd
bạn sẽ tạo ra một mô hình AaaBbb
và bản đồ mô hình này để bạn bảng:
class AaaBbb < ActiveRecord::Base
self.table_name = "aaa_bbb_ccc_ddd"
end
hoặc một ví dụ nhân bản hơn:
class AdminUser < ActiveRecord::Base
self.table_name = "my_wonderfull_admin_users"
end
Bây giờ bạn sẽ có AaaBbb
như tài nguyên ở các tuyến đường có nghĩa là bạn sẽ có một url như:
.../aaa_bbb/...
và nếu bạn muốn sử dụng tên tên bảng trong url Tôi đoán bạn có thể viết lại các tuyến đường:
get 'aaa_bbb_ccc_ddd/:id', "aaa_bbb#show", as: "aaa_bbb"
một lần nữa, chỉ là một lý thuyết có thể giúp bạn. Tôi đã không làm việc với các trường hợp như vậy được nêu ra nhưng sẽ bắt đầu từ này.
chỉnh sửa
để tự động tạo mô hình từ cơ sở dữ liệu:
https://github.com/bosko/rmre
nhưng tôi nghĩ rằng điều này sẽ tạo ra mô hình theo quy ước đường ray với những cái tên lạ mà bạn sẽ phải để sử dụng làm tài nguyên trong ứng dụng của bạn.
Mẫu tốt mà tôi tìm thấy trên SO trong trường hợp bạn muốn sử dụng một tên mô hình khác nhau từ tên bảng:
class YourIdealModelName < ActiveRecord::Base
self.table_name = `actual_table_name`
self.primary_key = `ID`
belongs_to :other_ideal_model,
:foreign_key => 'foreign_key_on_other_table'
has_many :some_other_ideal_models,
:foreign_key => 'foreign_key_on_this_table',
:primary_key => 'primary_key_on_other_table'
end
Có cách nào để tự động hóa điều này từ một schema.rb không? Tôi có ~ 20 bảng với ~ 10 cột mỗi. Không muốn mã tên và các thuộc tính bằng tay nếu có thể. – Derek
bạn chỉ nên quan tâm đến các bảng và sử dụng các cột của chúng như chúng. Tôi không chắc chắn bạn có thể thay đổi các cột bằng cách nào đó mà không ảnh hưởng đến ứng dụng khác hoạt động với db này. Về tự động hóa Tôi sẽ nghĩ rằng một bout .. sẽ cập nhật câu trả lời của tôi nếu tôi tìm thấy một cái gì đó hữu ích. – rmagnum2002
Ồ, tôi không nghĩ đến việc thay đổi tên cột.Nó chỉ là ngay bây giờ tôi thậm chí không có một tập tin mô hình kể từ khi tôi đang làm công cụ ngược. Vì vậy, tôi sẽ phải gõ tất cả mọi thứ bao gồm cả 'attr_accessible' công cụ, vì vậy tôi muốn một cái gì đó để tự động tạo ra tất cả các mã mô hình cho tôi. – Derek