我有一个模型项目和一个模型ProjectLine。 Project具有ProjectLine的嵌套属性。
在我的项目展示视图中,我列出了包含任务列表的项目信息。
onActivityResult()
使用cocoon在项目表单上创建任务。
在上面的视图中,在状态名称之后,我希望每个项目行都有一个按钮来更改状态。
我到目前为止找到的解决方案是创建一个表单。
<% @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 %>
上调用它,但我无法使其正常工作。
如何获得每个项目行的按钮以更改项目行状态?
答案 0 :(得分:0)
如果我理解你的要求,那就是
视图
<% @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 %>
的JavaScript(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
});
};
希望这会有所帮助。