无法使用我的文本参数来处理我的查询

时间:2015-03-24 11:25:42

标签: javascript ruby ruby-on-rails-4 rails-activerecord

我的问题是我的用户控制器中有一个自动填充方法,它使用我的可视化模型,将我视图中键入的内容与员工表中的内容(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);
      });
    }
  );
});

1 个答案:

答案 0 :(得分:0)

在你的javascript函数中,你没有传递任何参数,你只是在控制器中调用方法。尝试这样的事情:

$('#emp_id').change(function() {
  var url = "/user/populate_form&emp_id="+$(this).val();

现在控制器接收emp_id作为参数。