【问题标题】:How can I limit has_many to certain scopes in Rails 4?如何将 has_many 限制在 Rails 4 中的某些范围内?
【发布时间】:2014-09-21 11:49:45
【问题描述】:

我正在设置一种情况,我只希望我的模型的某些范围与另一个模型的“has_many”相同。作为一种假设情况,假设我有一个名为Tree 的模型和一个名为Apple 的模型。我只希望允许高大的树长有苹果,所以我将我的树模型范围设置为tall。在这种情况下如何正确使用 has_many?

我正在使用 Rails 4。

示例代码

Tree.rb

scope :tall, where(:tall => true)
scope :short, where(:short => true)
has_many :apples (need to alter this line to only have this happen for :scope tall)

Apple.rb

belongs_to :tall, class_name: 'Tree'

我也不确定其余代码是否正确,因此请告诉我是否可以对其进行任何改进。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 scope has-many belongs-to


    【解决方案1】:

    gem 'pundit' 使创建和允许特定模型和 oo 过程变得容易。可能是您正在寻找的。​​p>

    https://github.com/elabs/pundit

    【讨论】:

    • 谢谢,但我认为这可能比我需要的多一点。我希望用一两行快速的代码来完成这个
    • 好的。为了将来参考,我会查看 Pundit,因为它在几乎任何应用程序中都非常有用。祝你好运。
    猜你喜欢
    • 2016-08-23
    • 2021-12-02
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2012-02-13
    • 1970-01-01
    • 2015-09-17
    相关资源
    最近更新 更多