美文网首页
ruby on rails的一些小坑

ruby on rails的一些小坑

作者: xiaohesong | 来源:发表于2017-05-17 11:57 被阅读93次

坑一

写了一个页面的查询,用的是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

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

后续会补充遇到的坑.

相关文章

网友评论

      本文标题:ruby on rails的一些小坑

      本文链接:https://www.haomeiwen.com/subject/bagntxtx.html