Tôi gặp vấn đề về biểu mẫu lồng nhau. Tôi đã triển khai giải pháp biểu mẫu lồng nhau tạo thành các railscasts 196 & 197. Nó hoạt động nếu tôi không có lỗi xác thực.đường ray fields_for không hiển thị sau khi lỗi xác thực trên biểu mẫu lồng nhau
Vì vậy, biểu mẫu hiển thị hoàn hảo khi được tải, bao gồm các trường lồng nhau (trong phần fields_for).
Nhưng biểu mẫu có xác thực. Khi xác thực không thành công, bộ điều khiển sẽ hiển thị: mới. Sau đó, biểu mẫu hiển thị trường mô hình được liên kết ok, nhưng các trường lồng nhau không được hiển thị nữa. đó có phải là cách giải quyết?
bộ điều khiển
def new
@property = Property.new
@property.images.build
end
def create
@property = Property.new(params[:property])
if @property.save
flash[:success] = t('Your_property') + ' ' + t('is_successfully_created')
redirect_to myimmonatie_url
else
render :action => 'new'
end
end
một phần của quan điểm:
<% form_for :property, @property, :url => { :action => "create" }, :html => { :multipart => true } do |f| %>
<div id="new-property-form-spannedcols">
<div class="formField inptRequired">
<%= f.label :postal_code, t("Postal_code") %>
<%= f.text_field :postal_code, :class => 'inptMedium short' %>
</div>
<div id="city_row" class="formField inptRequired">
<%= f.label :city, t("City") %>
<div id="city_cell">
<%= render :partial => 'ajax/cities', :locals => { :postal_code => @property.postal_code } %>
</div>
</div>
...
<% f.fields_for :images do |builder| %>
<div class="formField">
<%= builder.label :photo, t("Photo_path_max_3mb") %>
<%= builder.file_field :photo, :class => 'inptMedium' %>
<%= builder.hidden_field :order, :value => "1" %>
</div>
<% end %>
</div> <!-- /new-property-form-spannedcols -->
<div class="formBtn">
<%= f.submit t("Save"), :class => 'btnMedium bg-img-home' %>
</div> <!-- /formBtn -->
<%- end -%>
Xin chào, Nó không ném lỗi, nó không được hiển thị, cũng không có lỗi trong nhật ký. Và có, giải pháp của bạn hoạt động! :) cảm ơn –