如何加入这个表?

时间:2011-04-26 02:35:31

标签: ruby-on-rails activerecord

我刚刚开始使用rails

错误

Mysql2::Error: Unknown column 'states.ad_id' in 'where clause': SELECT  `states`.* FROM `states` WHERE (`states`.ad_id = 1) LIMIT 1

我的模特

ad.rb

has_one :state

state.rb

belongs_to :ad

这是我的表格。

广告

+----+----------------+-------------+-------+-----------+
| id | title          | description | price | states_id |
+----+----------------+-------------+-------+-----------+
|  1 | ebook          | asdasd      |     1 |         1 |
|  2 | iphone 4 devol | sdfsdf      |     1 |         1 |
|  3 | asd            | asd         |     1 |         2 |
+----+----------------+-------------+-------+-----------+

陈述

+----+----------+
| id | name     |
+----+----------+
|  1 | Pluto    |
|  2 | Mars     |
+----+----------+

2 个答案:

答案 0 :(得分:1)

您的错误消息告诉您在states表中没有ad_id列。 您可能想使用states.id而不是states.ad_id

答案 1 :(得分:1)

看到它是belongs_to还是has_one关联? http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html

的部分 在您的示例中

您可能想要

状态

has_many :ads

广告

belongs_to :state

因为你指定的是多对一而不是一对一的关系,因为一个州可以有很多广告