Tôi đang cố truy cập mô hình cha mẹ của mình trong mô hình con khi xác thực. Tôi tìm thấy một cái gì đó về một tài sản nghịch đảo trên has_one, nhưng Rails của tôi 2.3.5 không nhận ra nó, vì vậy nó phải có bao giờ làm cho nó vào bản phát hành. Tôi không chắc chắn nếu đó là chính xác những gì tôi cần mặc dù.Rails accept_nested_attributes_for child không có bộ cha mẹ khi xác nhận
Tôi muốn xác thực trẻ có điều kiện dựa trên thuộc tính gốc. Mô hình Phụ huynh của tôi đã được tạo. Nếu đứa trẻ không được tạo ra khi tôi update_attributes trên cha mẹ, sau đó nó không có quyền truy cập vào phụ huynh. Tôi tự hỏi làm thế nào tôi có thể truy cập vào phụ huynh này. Nó nên được dễ dàng, một cái gì đó như parent.build_child đặt parent_id của mô hình con, tại sao nó không làm điều đó khi xây dựng các con cho accepts_nested_attributes_for?
Ví dụ:
class Parent < AR
has_one :child
accepts_nested_attributes_for :child
end
class Child < AR
belongs_to :parent
validates_presence_of :name, :if => :some_method
def some_method
return self.parent.some_condition # => undefined method `some_condition' for nil:NilClass
end
end
hình thức của tôi là tiêu chuẩn:
<% form_for @parent do |f| %>
<% f.fields_for :child do |c| %>
<%= c.name %>
<% end %>
<% end %>
Với một phương pháp cập nhật
def update
@parent = Parent.find(params[:id])
@parent.update_attributes(params[:parent]) # => this is where my child validations take place
end
Tôi đã gặp lỗi tương tự như op, nhưng khi tôi thử phương pháp này, tôi đã nhận được "Khóa không xác định: trước_add"? – Kvass