【问题标题】:Cant get my text params to work with my query无法让我的文本参数与我的查询一起使用
【发布时间】:2015-03-24 11:25:42
【问题描述】:

我的问题是我的用户控制器中有一个自动填充方法,它使用我的可视化模型将我的视图中键入的内容与我的员工表中的内容(可视化)进行比较。出于某种原因,我无法让它找到任何值。任何帮助是极大的赞赏。

这是我的用户控制器

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);
      });
    }
  );
});

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

    • 那行得通,我让 emp_id val 显示出来。但现在我在 2015 年 3 月 23 日 16 日收到 GET "/user/populate_form&emp_id=BILL" for 127.0.0.1 这个错误: 11:45 -0400 @MurifoX AbstractController::ActionNotFound(无法为 UserController 找到动作“显示”):
    • 这是我的路线资源 :user do collection doe get :populate_form end end
    • @user3910236 试试users/populate_form
    • 在我的路线上?还是js? @MurifoX
    • 我试过了,现在开始了 GET "/users/populate_form&emp_id=BILL" for 127.0.0.1 at 2015-03-23 16:58:19 -0400 @MurifoX ActionController::RoutingError (No路线匹配 [GET] "/users/populate_form&emp_id=BILL"):
    猜你喜欢
    • 1970-01-01
    • 2017-06-23
    • 2011-02-10
    • 1970-01-01
    • 2022-12-04
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多