加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails关联中的未知密钥

发布时间:2020-12-16 19:14:09 所属栏目:百科 来源:网络整理
导读:我有以下协会代码: has_many :rates_without_dimension,:as = :rateable,:class_name = "Rate",:dependent = :destroy,:conditions = {:dimension = nil}has_many :raters_without_dimension,:through = :rates_without_dimension,:source = :rater has_one
我有以下协会代码:
has_many :rates_without_dimension,:as => :rateable,:class_name => "Rate",:dependent => :destroy,:conditions => {:dimension => nil}
has_many :raters_without_dimension,:through => :rates_without_dimension,:source => :rater  

has_one :rate_average_without_dimension,:as => :cacheable,:class_name => "RatingCache",:conditions => {:dimension => nil}


dimensions.each do |dimension|        
  has_many "#{dimension}_rates",:conditions => {:dimension => dimension.to_s},:as => :rateable

  has_many "#{dimension}_raters",:through => "#{dimension}_rates",:source => :rater         

  has_one "#{dimension}_average",:conditions => {:dimension => dimension.to_s}
end

它引发了一个错误:

Unknown key: :conditions. Valid keys are: :class_name,:class,:foreign_key,:validate,:autosave,:table_name,:before_add,:after_add,:before_remove,:after_remove,:extend,:primary_key,:dependent,:as,:through,:source,:source_type,:inverse_of,:counter_cache

我试图将第一行改为:

has_many :rates_without_dimension,-> { where(:dimension => nil) }

但它也引发了一个错误,你能指出我有什么问题吗?

解决方法

这里描述的问题相同 https://teamtreehouse.com/forum/unknown-key-conditions

正如我在示例中看到的,带有条件的lambda应该在关联名称之后执行,因为没有{}的hash只能作为最后一个参数.

尝试

has_many :rates_without_dimension,-> { where(dimension: nil) },as: :rateable,class_name: "Rate",dependent: :destroy

附:你可以使用http://apidock.com/rails/Object/with_options使它看起来更好

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读