在Rails活动记录中创建丰富的多对多关联

时间:2014-07-28 14:47:45

标签: ruby-on-rails activerecord associations

我是铁轨的初学者,我正在学习Beginning Rails 4第3版:

我有3个丰富的多对多协会模型:

1-评论

2-文章

3-用户

class Comment < ActiveRecord::Base
  belongs_to :article
end

class Article < ActiveRecord::Base
  validates_presence_of :title
  validates_presence_of :body

  belongs_to :user
  has_and_belongs_to_many :categories
  has_many :comments

  def long_title
    "#{title} - #{published_at}"
  end
end

class User < ActiveRecord::Base
  has_one :profile
  has_many :articles, -> {order('published_at DESC, title ASC')},
                      :dependent => :nullify
  has_many :replies, :through => :articles, :source => :comments
end

该协会在我看来运作良好,但是当我尝试使用rails控制台时,我必须关闭它并重新打开以获得更改,除非user.replies.empty?永远是真的。

注意我尝试了reload!,但在重新打开rails console之前,仍然无法进行更改。 你知道为什么会这样吗?

1 个答案:

答案 0 :(得分:0)

这取决于你没有看到的变化。如果您更改了代码,请调用reload!方法:

irb(main):001:0> reload!
Reloading...
=> true

如果您在运行控制台时正在更改数据(可能是通过Rails服务器),那么在您的对象上调用reload就是您想要的:

user = User.first
# change some stuff in the database
user.reload
# user now has the changed data