【发布时间】:2012-02-09 12:45:26
【问题描述】:
我和这个人Rails: How to limit number of items in has_many association (from Parent)有类似的问题
关键是我想在 Array.push 而不是 has_many 关联的 :before_save 属性上执行此操作。在 Java 中,我可能会将 .windows 设为私有并创建自己的访问器。不确定我是否可以使用作为关联结果可用的 ActiveRecord 方法来做到这一点。
有什么建议吗?
我想要通过的规范是:
it "should not accept anymore windows" do
channel = Channel.new #with default 3 windows
channel.windows.length.should == 3
channel.windows.push Window.new
channel.windows.length.should == 3
end
【问题讨论】:
-
不是您问题的答案,但您是否打算让它静默失败(即当您这样做时不会引发任何类型的错误)?
-
马克:不是这样。虽然那可能会很好。这只是我需要确保创建的窗口不超过 3 个的情况。所以默默地失败并且不添加窗口就可以了。不过,对于我们班的消费者来说,这可能是不可接受的。
标签: ruby-on-rails ruby activerecord