2011-01-04 3 views
0

'작업'형식이 있고 동적으로 자식 '단계'양식을 추가하고 있습니다.동적으로 추가 된 중첩 된 폼과 부모 사이에 링크가없는 레일

'steps'은 javascript 호출을 통해 렌더 ('steps/form')를 통해 추가됩니다.

양식이 잘로드되지만 작업 양식을 제출할 때 추가 된 단계는 데이터베이스에 저장되지 않습니다.

나는 두 가지 양식을 함께 연결하지 않기 때문에 이것을 가정합니다. 그러나 완전히 확신 할 수는 없습니다.

내 코드는 단계/_form.html.erb가

 
<p class="fields"> 
    <%= fields_for :steps do |builder| %> 
    <%= builder.label :title %> 
    <%= builder.text_field :title %> 
<% end %> 

내가 문제가 내가 '통과 아니에요 믿고있다 작업/new.html.erb

 
<%= form_for @task, :html=>{:multipart=>true} do |f| %> 
    <%= f.label :task_name %> 
    <%= f.text_field :task_name %> 

<%= link_to "Add Step", @step, :remote=>true, :class=>'addStep %> 
<%= f.submit %> 
<% end %> 

<% content_for(:js) do %> 
    $('a.addStep').click(function(){ 
     $('div#newStep').append("<%= escape_javascript(render('steps/form'))%>"); 
    }); 
<% end %> 

입니다 f '또는'task '를'step '형식으로 바꾸지 만 어떻게해야하는지 알 수 없었습니다. 이 도움이

<%= render :partial => 'steps/form', 
      :locals => {:form => f} %> 

희망 :

답변

0

는 다음과 같이하십시오.

편집 - 1

다음과 같이 수행

<%= form_for @task, :html=>{:multipart=>true} do |f| %> 
    <%= f.label :task_name %> 
    <%= f.text_field :task_name %> 
    <div style="display:none;" id="steps_form"> 
     <%= render :partial => 'steps/form', 
       :locals => {:form => f} %> 
    </div> 
<%= link_to "Add Step", @step, :onClick=>"js_function_to_change_display_property()", :class=>'addStep' %> 
<%= f.submit %> 
<% end %> 

는 당신은 steps_form의 표시 속성을 변경하여 단계를 형성보기 간단한 자바 스크립트를 사용할 수 있습니다.

+0

경우 그 해리 갈 것인가? render partials 태그가 없으므로 렌더링 ('steps/form') 만 있습니다. 답을 명확히 할 수 있습니까? – pedalpete

+0

@pedalpete : 내 대답을 편집했습니다. 보세요. –

+0

안녕하세요, 답을 편집 해 주셔서 감사합니다.하지만 답변을 통해 문제가 해결되는 것은 아니며 많은 단계가 추가 될 수 있습니다. 스텝 폼을 동적으로 추가함으로써 페이지를 떠나지 않고 모든 작업에 3 단계를 추가 할 수 있습니다. div를 숨기거나 표시하는 방법을 알고 있습니다. 나는 당신이 현지인들과 올바른 길을 가고 있다고 생각하지만, 제 코드에서 제대로 작동하지 못했습니다. – pedalpete

0

부모 컨트롤러의 매개 변수를 업데이트하여 자식 특성을 포함해야 할 수도 있습니다. 예 : task.rb

Class TasksController < ApplicationController 
    ... 

    def task_params 
    params.require(:task).permit :name, :description , 
     steps_attributes: [:step, :step_description, :due_date] 
    end 
end 

모델 task_controller.rb

컨트롤러//

Class Task < ActiveRecord::Base 
    has_many :steps 
    accepts_nested_attributes_for :steps 
end 

모델/step.rb

Class Step < ActiveRecord::Base 
    belongs_to :task 
end 
관련 문제