根据某些属性将对象与现有对象相关联

时间:2012-05-29 16:34:48

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

A属于B.从对象A的控制器的create方法,如何根据它们的某些属性查看所有对象B并获取某个匹配对象B的id?最终目标是使用b_id外键将A分配给正确的B对象。

这是我目前拥有的,虽然它只创建新对象而无法找到要关联的旧对象。我最终得到了一堆具有相同名称但具有不同ID的主机:

        #assign line to host
          begin
            #attempt to assign line to existing host
            line.host = host.where(:name => line.hostname).first
          rescue
            #create new host
            line.host = Host.new({:name => line.hostname})
          end

1 个答案:

答案 0 :(得分:-1)

        #assign line to host
          line.host = Host.where(:name => line.hostname).first_or_create