比方说,我有订单和状态。
状态:
订单:
如何在Ruby on Rails中管理关联?
以下代码是否是最佳选择?
class Status < ActiveRecord::Base
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :status
end
答案 0 :(得分:1)
对于你的问题我建议使用枚举。为此,您将有一个类Order
,如下所示:
class Order < ActiveRecord::Base
enum status: [:open, :closed]
end
这将使您能够调用以下方法:
order = Order.new
order.closed? # => false
order.status # => "open"
请记住,当您定义枚举时,顺序很重要。所以,定义:
enum status: [:open, :closed]
不同于:
enum status: [:closed, :open]