Ruby on rails db抓取

时间:2011-12-15 08:37:49

标签: ruby-on-rails

while($table1=mysql_feach_assoc(mysql_query("select * from `table1`")))
{
$table2=mysql_feach_assoc(mysql_query("select table2_id from `table2` where field='$table1[field1]'"))
echo $table2['table2_id'];
}

我需要一个相当于这个php代码的Ruby on rails代码,而不使用表连接。

2 个答案:

答案 0 :(得分:2)

我们不会为你做这项工作。你需要付出一些努力,然后我们才能提供帮助。

但是如果你对Ruby on Rails一无所知,这可以让你开始使用ActiveRecord - Rails的ORM框架:

  1. ActiveRecord Query interface
  2. ActiveRecord Associations
  3. 如果您正在寻找更低级别的内容,而无需创建模型,并直接与数据库交谈,例如在您的示例中,您可以阅读mysql2 driver documentation以便快速入门。

答案 1 :(得分:0)

您可以举例说明您想要的更好,但等效的可能是:

table1Rows = table1.all
table2Rows = table2.find(:all, :select => "table2_id", :conditions => ["field in (?)", table1.map{|row| row.field1}])
table2Rows.each { |row| #do_stuff_here}

但是如果你的表是相关的,你甚至比那更容易: 假设table2是员工,table1是部门(一个部门可以有更多员工)

departments = Department.all
departments.do |department|
department.employees.each { |emp| #do_stuff_with_emp}