0

我收到错误:

PG::UndefinedTable:错误:关系“profiles_rsl_codes”不存在第 5 行:

当我尝试销毁个人资料时。

我有一张桌子rsl_codes_profiles,在我的个人资料模型中我有

  has_many :rsl_codes_profiles, class_name: "RslCodesProfile", dependent: :destroy

在我的RslCodesProfile课堂上,我有:

class RslCodesProfile < ActiveRecord::Base
  belongs_to :rsl_code
  belongs_to :profile

  validates :rsl_code_id, :presence => true
  validates :profile_id, :presence => true
  validates :rel_type, :presence => true
end

可能有一些迁移和撤消迁移和更改该表的名称,然后重新迁移以防可能产生影响。

对我的应用程序的全局搜索没有找到对这些应用程序的任何引用profiles_rsl_codesProfilesRslCodes单数。

错误回溯只指向我做@profile.destroy的地方,其余的跟踪都是框架的东西。

有任何想法吗?

4

2 回答 2

0

向那些花时间试图帮助我解决这个问题的人道歉。错误出在我没有添加到问题中的代码中。

我必须在我的 RslCode 模型中更改它

has_and_belongs_to_many :visible_rsl_codes, class_name: "RslCode", foreign_key: "code_visible_to_profile_ids"
has_and_belongs_to_many :visible_comment_rsl_codes, class_name: "RslCode", foreign_key: "comment_visible_to_profile_ids"

它试图使用我已经删除的 RslCode 中的一个code_visible_to_profile_ids字段comment_visible_to_profile_ids

对此

has_many :code_rsl_code_profiles, -> { where rel_type: 'code' }, class_name: 'RslCodesProfile', source: :rsl_codes_profiles
has_many :visible_rsl_codes, :through => :code_rsl_code_profiles, class_name: 'RslCode', source: :rsl_code

has_many :comment_rsl_code_profiles, -> { where rel_type: 'comment' }, class_name: 'RslCodesProfile', source: :rsl_codes_profiles
has_many :visible_comment_rsl_codes, :through => :comment_rsl_code_profiles, class_name: 'RslCode', source: :rsl_code

当我添加连接表以实现结果并且没有调整这些关系时。

于 2018-04-04T02:54:39.203 回答
0

尝试重新创建数据库rake db:drop db:create db:migrate

于 2018-02-20T15:49:40.680 回答