如果我想限制嵌套的记录数,我该如何编码?

时间:2013-01-01 19:16:42

标签: ruby-on-rails ruby-on-rails-3

我有2个型号。

  • 社区
  • CommunityTopic

社区 has_many CommunityTopics

但是如果我想限制一个社区拥有的 CommunityTopics 的数量呢? 我想将它限制为1000个记录,这些记录可以由一个社区拥有。

如何使用Flash错误消息在控制器的新操作中对其进行编码? 我应该在models / community_topics.rb中编码什么?

1 个答案:

答案 0 :(得分:2)

您需要在CommunityTopic模型中添加验证,可以将其命名为check_limits

def check_limits
  if self.community.communitytopics.count == 1000
    self.errors.add("can't create more topics for this community")
    false
  else
    true
  end
end

我建议使用常量而不是仅写1000,以防您以后需要更改。