1

Я понятия не имею, что может быть причиной этого. Я делаю свою вторую вложенную форму в приложении. У меня есть сайт для студентов, чтобы получить работу. Модель и форма задания относятся к работе, выполняемой с сайта, и просто перечисляют реальные места работы студента. Это вложенная форма и является частью модели под названием «Возобновить». У меня есть другая модель, совершенно другая, называется Schedule. Расписание принадлежит_о модели под названием Проект. Я пытаюсь создать вложенную форму, чтобы пользователь мог создать расписание. Обе формы используют javascript для динамического создания новых форм на странице по мере необходимости. По какой-то причине, когда я пытаюсь зайти на страницу с формой графика, я сказал:Ошибка вложенной формы Rails

Missing partial schedules/job_fields, application/job_fields 

Это не имеет никакого смысла, так как рабочие места и графики не имеют никакого отношения. Он не должен искать частичное занятие. Вот мнение код формы по расписанию:

<% @projects.each do |project| %> 
    <%= form_for project do |f| %> 
    <%= f.fields_for :schedules do |builder| %> 
     <%= render 'schedule_fields', :f => builder %> 
    <% end %> 
    <p><%= link_to_add_fields "Add Schedule", f, :schedules %> 
    <p><%= f.submit "Submit" %></p> 
    <% end %> 
<% end %> 

Вот парциальное '_schedule_fields.html.erb'

<p class = "fieldo"> 
    <%= f.label :title %><br /> 
    <%= f.text_field :title %><br /> 

    <%= f.label :task %><br /> 
    <%= f.text_field :task %><br /> 

    <%= f.hidden_field :_destroy %> 
    <%= link_to_function "remove", "remove_fields(this)" %> 
</p> 

А вот это JQuery:

//Dynamic forms 
function remove_fields(link) { 
     $(link).prev("input[type=hidden]").val("1"); 
     $(link).closest(".fieldo").hide(); 
} 

function add_fields(link, association, content) { 
     var new_id = new Date().getTime(); 
     var regexp = new RegExp("new_" + association, "g"); 
     $(link).parent().before(content.replace(regexp, new_id)); 
} 

Теперь вот что-то интересно. Если я создаю файл _job_fields.html.erb в каталоге views/schedules и копирую и вставляю содержимое из '_schedule_fields.html.erb', форма работает отлично. Я не могу понять, почему он ищет партию job_fields, когда я явно говорю в графиках формы. Как мне заставить это работать с частями sched_fields? Благодаря!

+0

В дополнение к вашей проблеме, могу ли я предположить, что вы пытаетесь динамически добавлять поля в эту форму? –

+0

Да. По сути, каждое расписание состоит из одной задачи. Каждый раз, когда кто-то нажимает «добавить», новая форма расписания динамически создается (одно поле для заголовка и одно поле для задачи). – Philip7899

+0

Да, я думал, что смогу узнать, что вы делаете, потому что я буквально работал над этим вчера! Здесь действительно хороший учебник (с рабочей демонстрацией), если вам нужно вдохновение: http://pikender.in/2013/04/20/child-forms-using-fields_for-through-ajax-rails-way/ –

ответ

0

Похоже, вы неправильно выстраиваете аргументы. (Если вы используете что-нибудь в вашем помощнике приложения, вы должны дать это тоже.)

Ваша функция link_to выглядит следующим образом

link_to_add_fields "Add Schedule", f, :schedules 

, но ваш браузер вызова для различных параметров:

function add_fields(link, association, content) 

Если вы их сопоставляете, вы получаете f = ассоциацию, что неверно. : schedules - это ассоциация. Я проверил бы этот railscast для получения дополнительной помощи: http://railscasts.com/episodes/403-dynamic-forms

Смежные вопросы