Tôi có một mô hình trong ứng dụng Rails của tôi cho Bản tin và khi được tạo, nhiều giá trị được lưu trữ trong cơ sở dữ liệu dưới dạng băm hoặc mảng được nối tiếp, để truy cập sau này. Tôi đang cố gắng tạo chế độ xem chỉnh sửa chỉ cho một trong số các băm đó, nhưng tôi không thể tìm ra cách truy cập nó trong biểu mẫu của mình.Làm thế nào để chỉnh sửa Rails serialized băm trong một hình thức?
Các băm trông như thế này khi được lưu trữ:
top_offices = { first_office: "Office Name", first_office_amount: 1234.50,
second_office: "Office Name", second_office_amount: 1234.50 }
Và vân vân ... có năm văn phòng.
Vì vậy, trong giao diện điều khiển tôi có thể chỉnh sửa các giá trị bằng cách làm:
bulletin = Bulletin.last
bulletin.top_offices[:first_office] = "New Office"
bulletin.top_offices[:first_office_amount] = 1234.00
bulletin.save
tôi không thể tìm ra cách để thực hiện một hình thức cho phép tôi để gán những giá trị đúng cách. Tôi thậm chí không thực sự cần hình thức để cư trú với các giá trị được lưu trữ trước đó bởi vì tôi đang thay đổi chúng hoàn toàn bất cứ lúc nào tôi sử dụng các hình thức.
OK. Tôi nghĩ rằng tôi sẽ có thể tìm ra bằng cách sử dụng tùy chọn một. Tôi có lẽ thích cách tiếp cận thứ hai nhưng tôi không thể tìm ra cách nó hoạt động trong đầu của tôi. Làm cách nào để sử dụng các phương thức đó trong biểu mẫu? Tôi có thể chỉ tạo một 'form_tag' và một số' text_field_tag' cho ': first_office' và cứ thế, khi tôi định nghĩa chúng, và gửi cho hành động cập nhật của tôi? –
Trình trợ giúp xem * _field đang tìm kiếm tên thuộc tính đã cho đối tượng đã cho form_for. Vì vậy, nếu bạn đã làm 'form_for @bulletin do | f |' và sau đó bạn làm 'f.text_field: first_office' thì helper' text_field' sẽ gọi một cái gì đó có tên 'first_office' trên đối tượng.Nó có thể là một thuộc tính hoặc một phương thức. Đó là phần "ma thuật";) – ZedTuX