作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我希望哪个订单有不同的订单状态,所以我在 status.rb 中有一个名为“status”的表,它是这样的:
class Status < ActiveRecord::Base
belongs_to :order
attr_accessible :name
end
这是我的订单.rb:
class Order < ActiveRecord::Base
has_one :statuses
end
在我看来,我尝试这样调用相关状态:
<%= order.statuses.name%>
不行,所以,我是这样调用的:
<% order.statuses.each_with_index do |order_status, index| %>
<%= order_status.name%>
<% end %>
还是不行。我有这样的错误:
uninitialized constant Order::Statuses
我将我的代码更改为:
应该是
有一个:状态
和
订单.状态.名称
但是我有这个错误:
SQLite3::SQLException: 没有这样的列:statuses.order_id: SELECT * FROM "statuses"WHERE ("statuses".order_id = 5) LIMIT 1
我只想要与状态相关的订单,但是状态与订单无关,可以吗?
最佳答案
由于复数化,您遇到了错误。你应该:
class Order < ActiveRecord::Base
has_one :status
end
但是,听起来您的 belongs_to - has_one 关系可能是倒过来的。如果你只想在数据库中有几个状态(例如:pending, billed, shipped, complete),一个 Status 应该是 has_many
订单,每个 Order 应该 belongs_to
状态。按照您现在的设置方式,每个订单都会有一个单独的 Status 对象。这可能是您想要的,但请确保您理解这意味着每个状态都不同(可能每个状态都是描述顺序的一两句话)。
关于ruby-on-rails - 我的客体关系有什么问题吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2140349/
我是一名优秀的程序员,十分优秀!