Tôi có một người dùng và một mô hình tiểu sử. Một người dùng có thể có nhiều hồ sơ. Tôi chỉ cần truy cập một thông tin từ phần hồ sơ (viz số điện thoại) trong mô hình người dùng của tôi trong quá trình tạo người dùng. Do đó tôi đang cố gắng hoàn thành nó qua attr_accessible
. My user.rb trông như thế nàyCác biểu mẫu lồng nhau trong đường ray - thuộc tính truy cập trong quan hệ has_many
has_many :profiles
attr_accessible :handle, :email, :password, :profile_mobile_number
attr_accessor : :profile_mobile_number
Vấn đề mà tôi phải đối mặt là khi tôi cố gắng gọi phương thức getter profile_mobile_number trong một phương pháp trong user.rb (method là private, mặc dù tôi nghĩ rằng nó không quan trọng), tôi m nhận giá trị null. Tôi sử dụng thông tin sau đây trong người dùng của tôi/new.html.erb form
Câu hỏi của tôi là cách thích hợp để làm điều này? Tôi có nên sử dụng <% f.fields_for :profile do |ff| -%>
hoặc <% f.fields_for :profiles do |ff| -%>
(thông báo rằng số thứ hai là số nhiều). Khi tôi sử dụng số nhiều: tiểu sử, tôi thậm chí không thấy các trường trên biểu mẫu. Tôi đang thiếu gì ở đây? Và những gì là căng thẳng mà cần phải được sử dụng trong mô hình user.rb? : profile_phone_number hoặc: profiles_phone_number? Cảm ơn.
Như tôi đã nói tôi đã sử dụng f.fields_for: tiểu sử và các trường trong biểu mẫu không hiển thị. Hóa ra tôi phải thêm @ user.profiles.build vào bộ điều khiển. Nhưng bây giờ tôi không thể có cả attr_accessible và accept_nested_attributes_for trong user.rb. Các cựu ghi đè sau này. Nhưng tôi muốn có attr_accesible cho các thuộc tính của mô hình người dùng trong khi không hạn chế quyền truy cập vào các thuộc tính của mô hình hồ sơ. Bất kỳ ý tưởng? Cảm ơn. –