我刚刚开始使用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 |
+----+----------+
答案 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
因为你指定的是多对一而不是一对一的关系,因为一个州可以有很多广告