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
});
};
희망의 라인을 따라 귀하의 요청, 뭔가를해야만 이해한다면
폼을 컨트롤러 동작쪽으로 원격으로 지정하고 필요한 ID를 전달하여 상태를 변경하십시오. Ajax로 뷰를 업데이트하십시오. –
의견을 보내 주셔서 감사합니다. 코드 샘플을 제공해 주시겠습니까? – Catmal