我的问题是我的用户控制器中有一个自动填充方法,它使用我的可视化模型,将我视图中键入的内容与员工表中的内容(Visual)进行比较。出于某种原因,我无法找到任何值。任何帮助是极大的赞赏。
这是我的用户控制器
class UserController < ApplicationController
def populate_form
@visual = Visual.find_by_id(params[:emp_id])
render :json => {
:emp_first_name => @emp_first_name,
end
end
这是我的视觉模型
class Visual < ActiveRecord::Base
establish_connection :vmfg
self.table_name = 'employee'
belongs_to :user
end
这是我的观点
<div class='row form-group'>
<div class='col-xs-8 col-xs-offset-2 col-sm-6 col-sm-offset-3 col-md-4 col-md-offset-4 col-lg-2 col-lg-offset-5 text-right'>
<%= f.text_field :emp_id, tabindex: 1, id: 'emp_id', autofocus: true, placeholder: t( 'login_label' ), class: 'form-control' %>
</div>
</div>
这是我查询时得到的结果
Visual Load (2.8ms) SELECT "EMPLOYEE".* FROM "EMPLOYEE" WHERE "EMPLOYEE"."ID" IS NULL AND ROWNUM <= 1
但是当我将用户控制器更改为此功能时,我的问题是如何在调用填充表单方法时使用键入emp_id
文本字段的内容?
def populate_form
@visual = Visual.find_by_id('BILL')
Visual Load (2.9ms) SELECT "EMPLOYEE".* FROM "EMPLOYEE" WHERE "EMPLOYEE"."ID" = 'BILL' AND ROWNUM <= 1
另外,对于额外的信息,这是我的app.js执行populate_form
$('#emp_id').change(function() {
var url = '/user/populate_form/';
$.getJSON(url, function(data) {
if(!(data.emp_first_name === undefined))
$('#emp_first_name').val(data.emp_first_name);
});
}
);
});
答案 0 :(得分:0)
在你的javascript函数中,你没有传递任何参数,你只是在控制器中调用方法。尝试这样的事情:
$('#emp_id').change(function() {
var url = "/user/populate_form&emp_id="+$(this).val();
现在控制器接收emp_id
作为参数。