0

我的模型中有一个类,如下所示:

class Project::Area < ActiveRecord::Base
  attr_accessor :cancel_id
  def save_loc_values
    update_record = Project::Loc.find_by_Project_Reference(project.Project_Reference)
    update_record.update_attributes({
      Status: 'D',
      Cancellation_Date: DateTime.now().strftime("%Y-%m-%d %T.%L"),
      CancellationReason_id: self.cancel_id
    })
  end
end

在我的form,我正在使用该attr_accessor领域

<%= form_for @area, remote: true, html: {data: {save_warning_form: true}} do |f| %>
  <%= form_error(f) %>
  <%= f.text_field :cancel_id %>
  <%= link_to 'omit', save_loc_values_project_areas_path(area_id: @area.id, cancel_id: @area.cancel_id), remote: true, method: :post %>
<% end %>

我为我的自定义方法创建了一条路线,controller如下所示,

def save_loc_values
  @area = Project::Area.find(params[:area_id])
  @return = @area.save_loc_values
end

它工作正常并将值保存到另一个数据库表中的Status问题Cancellation_Date。但是 On change cancel_id 值没有保存。如何通过并保存 onchange cancel_id

谢谢,我真的很感激你的帮助。

4

2 回答 2

1

问题是:您没有使用cancel_id您在view.

只需传递cancel_id即将执行的params操作save_loc_values@return = @area.save_loc_values(params[:cancel_id])使用相同的update_attributes

更新 :

<%= form_for @area, url: save_loc_values_project_areas_path, method: :post  remote: true, html: {data: {save_warning_form: true}} do |f| %>
  <%= form_error(f) %>
  <%= f.text_field :cancel_id %>
  <%= f.submit 'omit' %>
<% end %>
于 2013-10-24T08:45:22.237 回答
1

你可以这样做:

html

 <%= link_to_function "ommit", "ommit('#{@ommit.id}')" %>

js

function ommit(id)
{
  $.ajax({
    url:"/your_controller_name/save_loc_values",
    dataType: "json",
    data: "ommit_id=" + id + "&cancel_id=" + $('#cancel_id').val(),
    type: 'GET/POST'# your method type
  });
}

控制器

def save_loc_values
  @area = Project::Area.find(params[:area_id])
  @return = @area.save_loc_values(params[:cancel_id])
end

型号

def save_loc_values(cancel_id)
    update_record = Project::Loc.find_by_Project_Reference(project.Project_Reference)
    update_record.update_attributes({
      Status: 'D',
      Cancellation_Date: DateTime.now().strftime("%Y-%m-%d %T.%L"),
      CancellationReason_id: cancel_id
    })
end
于 2013-10-24T10:29:44.133 回答