ruby on rails的一些小坑

坑一

写了一个页面的查询,用的是ransack.

#model/order.rb
class Order < ActiveRecord::Base
    has_one :score, as: :scoreable
end

#model/score.rb
class Score < ActiveRecord::Base
    belongs_to :scoreable, polymorphic: true
end

这个是一个多态关联.在controller中使用ransack查询的时候碰到了一些问题.

  • inlcudes
@q = Score.includes(:scoreable).result
@result = @q.result

这样页面会出错,r如下:

Cannot eagerly load the polymorphic association :scoreable

其实解决方案也很简单粗暴,在model做下处理.

#score.rb
class Score < ActiveRecord::Base
    belongs_to :scoreable, polymorphic: true
    belongs_to :order, foreign_key: "scoreable_id"
end

然后 includes(:order)就可以了.

  • 页面查询也会存在问题.
<input name="q[scoreable_numero_cont]" />

这样也会报错,如下:

uninitialized constant Score::Scoreable

解决方法是可以用上面提到的.指定了foreign_key的belongs_to.

<input name="q[order_numero_cont]" />

当然也可以使用ransack提供的解决方案.
ransack链接

坑二

在写积分的平均分的时候,写了一个类方法去获取当前数据的平均分.(总分/条数).

#score.rb
 ...
 def self.average
  #do smt
 end

会报错,是参数错误,换了一个方法名字就好了,这个问题会等有时间了继续追踪.

后续会补充遇到的坑.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • **2014真题Directions:Read the following text. Choose the be...
    又是夜半惊坐起阅读 11,744评论 0 23
  • 都说做女人难,其实躲在明星丈夫背后的女人更难。 “大衣哥”蹿红速度之快,恐怕他做梦也不会想到。不过庆幸的是,朱之文...
    一览吾娱阅读 725评论 0 0
  • 最近因为要生二胎,原有工作戛然而止,多了不少时间,于是在猫堡蹲了两期!学了Q版人物和速写。也算是重置儿时的爱好~画...
    缤妮阅读 260评论 0 1
  • 文/米衙 尴尬的30岁 最近一个学生问我,说自己马上就要到30岁了,发现体力越来越不如从前,不能长时间加班。偶尔加...
    米衙阅读 1,161评论 1 11
  • 一个结构体变量定义完之后,其在内存中的存储并不等于其所包含元素的宽度之和。 例一: #include using ...
    nebsKXZ阅读 1,169评论 0 2

友情链接更多精彩内容