在autopopulate上工作,无法让它工作

时间:2015-03-23 15:17:27

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

遇到麻烦让我的问题出现了,我的问题是当我查询我的Visual模型以获取自动为用户填充的信息时..

这是我的视觉模型

 class Visual < ActiveRecord::Base

   establish_connection :vtest

   self.table_name = 'employee'

   Visual.inheritance_column = 'inheritance_type'

   belongs_to :user
 end 

这是我的用户模型

 class User < ActiveRecord::Base
   belongs_to :visual

这是我的用户控制器,当我看到它时自动填充动作...当我使用where('id =?',“#{emp_id}')时我得到此错误NameError(undefined local variable)或者方法`emp_id'代表#):但是当我将它改为.where('id =?',“BILL”)时,它可以工作....我有一个表格,当他们输入信息时,这将自动完成其余的他们的页面,但每个人有一个不同的emp_id。

但是,当我这样做时,Visual.where('id =?',“#{@ emp_id}%”)我觉得这是有效的,但没有任何东西显示Visual Load(3.0ms)SELECT“EMPLOYEE”。* FROM“雇员“WHERE(id ='%')

class UserController < ApplicationController


def populate_form
  @visual = Visual.where('id = ?', "#{emp_id}")
  @emp_first_name = @visual.first_name

  render :json => {

      :emp_first_name => @emp_first_name,
  }

 end

用户的表格信息

 emp_id 

视觉表信息

 id 
 first_name 

emp_id和id是同样的例子@ user.emp_id = Bill,@ visual.id = Bill。

我现在尝试了这个但是现在我得到了这个错误Visual Load(4.7ms)SELECT“EMPLOYEE”。* FROM“EMPLOYEE”WHERE(id = NULL)

def self.emp_id
  @emp_id = emp_id
end


def populate_form
  @visual = Visual.where('id = ?', @emp_id)

1 个答案:

答案 0 :(得分:0)

您根本没有在控制器中定义emp_id。和@emp_id查询有效,因为它被评估为'nil'(未定义的实例变量是nils)