【问题标题】:Remove association model in Rails在 Rails 中删除关联模型
【发布时间】:2011-12-28 12:32:05
【问题描述】:

您好,我想知道是否可以删除 Rails 中的关联。

嗯,我有类似的东西:

class Home < ActiveRecord::Base
  include settings
end

在 settings.rb 我有类似的东西

module Settings
  attr_reader :person
  attr_reader :address

  def self.included(base)
      base.belongs_to :city
      base.belongs_to :entity
      [...]
  end

  [...]

end

在家庭课程中,我的特定案例中的城市模型协会没有意义。而且我必须找到一种方法来删除它以保持我的代码干燥。

谢谢!

注意:请在投反对票之前给我反馈。

【问题讨论】:

  • 我不记得 ActiveRecord 中的任何方法,但无论如何我都会从相反的角度解决这个问题。我认为最好不要一开始就添加你不需要的关联。其中一个选项是将所有belongs_to 调用移动到一个单独的方法中,该方法将接受所需关联的列表。在这种情况下,您必须在包含模块后显式调用该方法,但它看起来仍然比添加所有并删除不必要的关联更好。
  • 如果只有一个异常,把不同的代码放到 Home 类中,因为其他重用你的模块的类使用包含。很多 DRY 并不总是很方便。
  • 我认为您对此有点迂腐......没有理由删除这些方法,只是让实例不会响应它们。不管这背后的原因是什么,好吧,现在还不清楚。请澄清你为什么要这样做。
  • 这不是迂腐,这是我的代码逻辑问题。

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


【解决方案1】:

如果您只是不想要这些方法,请使用remove_method 删除它们。

【讨论】:

  • 我可以在我的模型类 remove_method :city 上做,它会工作吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-04
  • 1970-01-01
  • 1970-01-01
  • 2017-04-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多