В Rails нескольких моделях (вложенных) форма не показывает дочернюю модель после ошибки проверки - PullRequest
0 голосов
/ 25 июля 2011

Я использовал несколько моделей из в рельсах, он не работает должным образом в синарио

  <%= form_for [@listing] do |f| %>

    <%= f.fields_for :photos do |ph| %>

      <%= ph.file_field :data %>

    <% end %>

  <% end %>

при проверке я не загружал изображение (изображение необязательно) и не отправил форму. если в первой модели есть какая-либо ошибка, то в форме отображается сообщение об ошибке, тогда как в форме не отображается поле ввода второй формы (<% = ph.file_field: data%>)

Ответы [ 2 ]

0 голосов
/ 25 июля 2011
def new

@listing = Listing.new    

1.times do

  @listing.photos.build

end

respond_to do |format|

  format.html # new.html.erb

  format.xml  { render :xml => @listing }

end

end

это помогает только в разработке. В производстве это не помогает. В режиме онлайн, даже если щелкнуть новое объявление, поля с фотографиями не отображаются.

0 голосов
/ 25 июля 2011

Я полагаю, вы

render "new"

в случае ошибки.При рендеринге нового представления соответствующее действие контроллера не вызывается!Таким образом, у вашего

@listing = Listing.new(params[:listing])

не будет фотографии, связанной с ним.Сделайте

@listing.build_photo # or @listing.photos.build (for has_many association)

перед рендерингом нового.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...