我怎样才能做到这一点?
class User < ActiveRecord::Base
has_many :old_posts
has_many :new_posts
end
我已经与old_posts模型有has_many关系。我想为new_posts添加另一个has_many关系。 old_posts和new_posts无关。我正在重构我的架构,我想支持&#39; old_posts&#39;在我完全摆脱它之前几个月的模型。
我尝试迁移时在架构中出现此错误
#Could not dump table "Users" because of
following NoMethodError
#undefined method `[]' for nil:NilClass
答案 0 :(得分:1)
您应指定条件,因为两者都指的是同一模型。
提及明确引用的模型,因为默认情况下由于自定义关联名称而无法识别模型。
更新如下代码
class User < ActiveRecord::Base
has_many :old_posts, ->{where("created_at > ?", Time.now.end_of_day)}, class_name: 'Post', foreign_key: 'user_id'
has_many :new_posts, ->{where("created_at < ?", Time.now.end_of_day)}, class_name: 'Post',foreign_key: 'user_id'
end