2017-12-27 8 views
0

저는 모델 프로젝트와 모델 ProjectLine을 가지고 있습니다. 프로젝트에는 ProjectLine의 속성이 중첩되어 있습니다.중첩 된 속성의 상태를 업데이트하는 레일 버튼

내 프로젝트에보기 목록으로 작업 목록이있는 프로젝트 정보를 나열합니다.

<% @project.project_lines.each do |project_line| %> 

<%= project_line.user.name %> 
<%= project_line.description %> 
<%= number_to_currency project_line.amount, precision: 0, unit: "USD ", separator: ",", delimiter: "," %> 
<%= project_line.task_status_name %> 

<% end %> 

작업은 누에 고치를 사용하여 프로젝트 양식에 작성됩니다.

위의보기에서 상태 이름 다음에 상태를 변경하는 각 프로젝트 행마다 버튼을 갖고 싶습니다.

지금까지 발견 한 해결책은 양식을 만드는 것입니다.

<%= semantic_form_for @project_line do |f| %> 

    <%= f.hidden_field :status, :value=>2 %> 
    <%= f.submit 'ACCEPT', class: 'btn btn-primary btn-md' %> 

<% end %> 

나는 프로젝트 부분에 배치하고 루프 <% @project.project_lines.each do |project_line| %>에 전화를 시도하지만 난 작동 얻을 수 없습니다.

프로젝트 라인 상태를 변경하기 위해 각 프로젝트 라인에 대한 버튼을 어떻게 얻을 수 있습니까? 내가

보기

<% @project.project_lines.each do |project_line| %> 

    <%= project_line.user.name %> 
    <%= project_line.description %> 
    <%= number_to_currency project_line.amount, precision: 0, unit: "USD ", separator: ",", delimiter: "," %> 
    <%= project_line.task_status_name %> 
    <button class="accept_to_server">Accept</button> 
<% end %> 

자바 스크립트 (JQuery와)

$.('.accept_to_server').on('click', function(){ 
    $.ajax({ 
    url: 'path/to/accept/route' 
    method: 'PUT' // or what method your route uses 
    data: {data:you, need:here} 
    }).done(function(data){ 
    // update your view 
    }).fail(function(){ 
    // something went wrong 
    }); 
}; 

희망의 라인을 따라 귀하의 요청, 뭔가를해야만 이해한다면

+0

폼을 컨트롤러 동작쪽으로 원격으로 지정하고 필요한 ID를 전달하여 상태를 변경하십시오. Ajax로 뷰를 업데이트하십시오. –

+0

의견을 보내 주셔서 감사합니다. 코드 샘플을 제공해 주시겠습니까? – Catmal

답변

0

이 밖으로 도움이됩니다.