【发布时间】:2015-03-16 06:50:34
【问题描述】:
我有以下表格 4 个型号
class ItemCode < ActiveRecord::Base
belongs_to :item_point
end
class ItemPoint < ActiveRecord::Base
belongs_to :item
has_many :item_codes
end
class Item < ActiveRecord::Base
belongs_to :prodcut_category
has_many :item_points
end
class ProductCategory < ActiveRecord::Base
has_many :items
end
现在我必须使用 product_category 找到 item_codes 详细信息,为此我使用了内部联接。这是mysql查询
SELECT *
FROM `item_codes` utc
INNER JOIN item_points rtp ON rtp.id = utc.item_point_id
INNER JOIN items ri ON ri.id = rtp.item_id
INNER JOIN product_catagories rpc ON rpc.id = ri.product_catagory_id
WHERE rpc.id =1
LIMIT 0 , 30
现在我必须以 Acitve 记录格式编写相同的查询。
ItemCode.joins(:item_point).joins(:item).joins(:product_catagory).where("product_catagories.id = 1")
出现以下错误
ActiveRecord::ConfigurationError: Association named 'item_points' was not found; perhaps you misspelled it?
那么如何以活动记录格式编写给定的查询。
编辑
product_catagories
+----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| client_id | int(11) | YES | | NULL | |
| category_name | varchar(255) | YES | | NULL | |
| category_description | varchar(255) | YES | | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
| scheme_id | int(11) | YES | MUL | NULL | |
+----------------------+--------------+------+-----+---------+----------------+
item_points
+----------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| item_id | int(11) | YES | MUL | NULL | |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
+----------------+--------------+------+-----+---------+----------------+
项目
+----------------+--------------+-- -----+-----+---------+------------
----+
| Field | Type | Null | Key | Default | Extra |
+----------------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| created_at | datetime | NO | | NULL | |
| updated_at | datetime | NO | | NULL | |
| product_catagory_id | int(11) | YES | MUL | NULL | |
+----------------------------+--------------+------+-----+---------+----------------+
item_codes
+----------------------+--------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+----------------------+--------------+------+-----+---------+----------------+
| id | int(11) | NO | PRI | NULL | auto_increment |
| item_point_id | int(11) | YES | MUL | NULL | |
+----------------------+--------------+------+-----+---------+----------------+
【问题讨论】:
-
你能提供你的表结构吗?
-
@NavjotSingh 我已经更新了我的问题。
-
@I-am-simple-user,你试过我的解决方案了吗?
标签: mysql ruby-on-rails ruby-on-rails-3