рельсы частично формируются для новых и редактируются на той же странице

Я сталкиваюсь с проблемами, пытаясь отделить форму от представления в частичную. Я хочу использовать одну и ту же форму для нового представления и редактирования. Они оба на одной странице. Форма новой модели находится вверху страницы и использует переменную, которую я установил в контроллере.

<%= form_for @new_hire do |f| %>
<%= render :partial => 'new_hire_requests/form', :locals => {:f => f} %>
<% end %>

Затем у меня есть партиал для ожидающих утверждений, который обрабатывается другим партиалом.

<%= render :partial => 'pending_approval', :collection => @pending_approval %>

И внутри частичного утверждения, ожидающего утверждения, у меня есть это

<%= form_for pending_approval do |f| %>
<%= render :partial => 'new_hire_requests/form', :locals => {:f => f} %>
<% end %>

Это выдает ошибку

undefined method `new_hire_request_path' for #<#<Class:0x0000010488ac98>:0x0000010223ffc0>

Есть ли способ повторно использовать код формы как для новой, так и для редактирования формы на одной странице?

Логика контроллера

@new_hire = NewHireRequest.new
@new_hire_requests = current_user.new_hire_requests
@pending_approval = @new_hire_requests.select{|p| p.status == 'pending_hr_approval' || p.status == 'pending_exec_approval'}

Частичный код

<%= render 'shared/error_messages', object: f.object %>

<fieldset class="first">
<%= f.label :first_name, "First Name" %>
<%= f.text_field :first_name %>
</fieldset>
<fieldset>
<%= f.label :last_name, "Last Name" %>
<%= f.text_field :last_name %>
</fieldset>
<%= f.submit "Submit for Approval <i class='icon-share-alt icon-white'></i>", 
        class: "button_green" %>

person Austin    schedule 01.11.2012    source источник
comment
что такое объект pending_approval в вашем действии редактирования и что такое @new_hire в вашем новом действии?   -  person Ravi Sankar Raju    schedule 01.11.2012
comment
они оба являются объектами, созданными из контроллера @new_hire = NewHireRequest.new @pending_approval представляет собой набор объектов NewHireRequest, поэтому частичное отображается для каждого объекта в коллекции   -  person Austin    schedule 01.11.2012
comment
это одни и те же объекты? можете ли вы добавить логику вашего контроллера и частичную форму?   -  person Ravi Sankar Raju    schedule 01.11.2012
comment
Тогда код выглядит нормально. можете ли вы поделиться содержимым new_hire_requests/form ?   -  person Ravi Sankar Raju    schedule 01.11.2012
comment
поэтому я попытался переместить форму из частичной части формы в частичную pending_approval и все еще вижу ту же ошибку. Я предполагаю, что это связано с рендерингом коллекции и тем, как объекты извлекаются для рендеринга. есть что-то, что мне здесь не хватает   -  person Austin    schedule 02.11.2012
comment
нет наверное. попробуйте установить параметр URL в form_for. Вы добавили ресурсы new_hire_requests в route.rb, чтобы вещи REST могли работать?   -  person Ravi Sankar Raju    schedule 02.11.2012
comment
вот чего не хватало, у меня был new_hire_requests в качестве ресурса, но только с: :create, я добавил :edit и теперь он работает. Спасибо!   -  person Austin    schedule 02.11.2012
comment
хорошо. я опубликую ответ   -  person Ravi Sankar Raju    schedule 02.11.2012


Ответы (1)


добавьте ресурсы new_hire_requests в маршруты и покончите с этим.

person Ravi Sankar Raju    schedule 01.11.2012