2013-03-12 67 views
0

我正在学习ruby。我想使用活动记录来使用这样一个简单的查找命令:MyModel.find_by_emp_id(i.emp_id)在模型上,但我不能使用我正在使用的Vertica数据库gem。像这样在模型上运行直接SQL查询的结果集: vemployees = conn.query("select * from employees")返回类似于数据结构的散列。 数据结构vemployees是Vertica的结果::类型和结构看起来像波纹管:在Ruby Hashes中查找包含SQL select结果集输出的值

[ 
    {:emp_id=>"3321", :emp_last_name=>"Man", :emp_first_name=>"super", :emp_mid_name=>nil}, 
    {:emp_id=>"3325", :emp_last_name=>"Man", :emp_first_name=>"Bat", :emp_mid_name=>nil}, 
] 

我怎么能不通过的名单去执行类似,vemployees.find_by_emp_id(i.emp_id)结果如何?

回答

0

N.B.未经测试的代码

类似:

基于myModel

def self.find_by_emp_id(id) 
    conn.query("select * from employees where emp_id = #{id}")[0] 
end 

由于创业板是不是ActiveRecord的,你必须写自己的访问器,你可以不依赖于自动地创建ActiveRecord的find_by_方法。我认为你可以将这个宝石破解成ActiveRecord,并拥有ActiveRecord的所有优点,但这可能比你想要成为Ruby初学者更多。

小心清理任何用户输入...