Đây là tình huống.Cách lưu Mongoid foreign_key dưới dạng số nguyên hoặc giữ mô hình gốc có số nguyên
user embed_one profile
profile belongs_to city
Tôi đã cư một bảng thành phố với
id as Integer
name as String
Bây giờ tôi đang làm user.update_attributes(:profile_attributes{:city_id=>"5"})
mô phỏng một hình thức trình duyệt. Sau đó, tôi kiểm tra user.profile
Tôi thấy rằng city_id được lưu trữ dưới dạng chuỗi. Điều này làm cho số user.profile.city
của tôi hiển thị không.
Tôi tự hỏi điều phải làm ở đây là gì. Tôi có nên để id thành phố của tôi là chuỗi hoặc đối tượng BSON không? Hoặc tôi nên cố gắng để đánh chặn update_attributes để làm cho cửa hàng mongoid city_id là số nguyên? Lý do tôi đang sử dụng Integer là id cho thành phố là vì tôi nghĩ tìm kiếm thông qua Integer nhanh hơn tìm kiếm thông qua chuỗi. Và tôi cũng có các bảng tiểu bang và thành phố và tôi muốn khớp các id theo cách có thể dự đoán được vì vậy tôi không muốn sử dụng khóa ronome BSON.
điều này có vẻ đầy hứa hẹn. nhưng có thể có rất nhiều phương pháp để thêm vào nếu vấn đề liên quan đến nhiều bảng và nhiều thuộc tính. Sẽ được tốt đẹp nếu tôi có thể tự động chuyển đổi params chuỗi thành số nguyên nếu tôi tuyên bố những thuộc tính như số nguyên. Khỉ vá Môngoid, có lẽ? – benzhang
Vấn đề với các đối tượng bson là gì? – rwz
Tôi đang chuyển các bảng thành phố của tiểu bang. Và tôi muốn số nguyên là id của tiểu bang để thành phố của tôi đề cập đến trạng thái đúng. Tôi đoán tôi có thể sử dụng một thuộc tính riêng biệt như chìa khóa nước ngoài sau đó tôi sẽ không nhớ bson là id. – benzhang