Rails:在没有JOIN的情况下跨表查询

时间:2015-04-16 18:50:36

标签: mysql ruby-on-rails ruby

由于某种原因无法让这个工作。我一直在阅读Code School的课程并观看了这段视频: http://railsforzombies.org/levels/2 在9点13分,他在模特身上查询......我只是想做同样的事情......

这就是我所做的..我有两个型号..用户和产品 我的关系:

class Product < ActiveRecord::Base
   belongs_to :user
end

class User < ActiveRecord::Base
   has_many :products
end

然后我的架构

   create_table "products", force: true do |t|
     t.integer  "upc"
     t.string   "description"
     t.integer  "user_id"
     t.datetime "created_at"
     t.datetime "updated_at"
   end 

  create_table "users", force: true do |t|
     t.string   "name"
     t.datetime "created_at"
     t.datetime "updated_at"
  end

然后最后,实际查询..

s = Product.find(1)

Product Load (1.3ms)  SELECT  "products".* FROM "products"  WHERE "products"."id" = ? LIMIT 1  [["id", 1]]
=> #<Product id: 1, upc: 1, description: "Desc. 1", user_id: 1, created_at: "2015-04-16 16:14:48", updated_at: "2015-04-16 16:14:48">

然后我只想返回拥有第一个产品的用户的名字..就像这样

s.user.name

这给了我这个错误:

NoMethodError: undefined method `user' for #<Product:0x00000005593850>

但它不起作用,这里有什么问题?

0 个答案:

没有答案