2017-12-27 16 views
0

私はモデルプロジェクトとモデルProjectLineを持っています。プロジェクトにはProjectLineのネストされた属性があります。ネストされた属性のステータスを更新するRailsボタン

私のプロジェクトでは、私はタスクのリストを含むプロジェクト情報を表示しています。

<% @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

これはアウトに役立ちます。

関連する問題