Rails如何区分控制器中的两列?

时间:2011-04-11 11:12:13

标签: ruby-on-rails ruby ruby-on-rails-3

我的协会描述如下:

Konkurrancers属于Kategori

Kategori有许多Konkurrancers。

在我的konkurrancers表中,我有:

rating_score
ratings
class KategorisController < ApplicationController
  def show
  @kategori = Kategori.where(:cached_slug => params[:id]).first
// Does not work
   @rating = @kategori.konkurrancers.rating_score / @kategori.konkurrancers.ratings
  end
end

我在视图中收到此错误:

NoMethodError in KategorisController#show

undefined method `rating_score' for #<Class:0x5f3e590>

列评级包含评级数 并且rating_score保持评级

我想将这两列区分如下:rating_score / ratings

如何在我的控制器中创建它?

1 个答案:

答案 0 :(得分:0)

由于kategori有多个konkurrancers,因此konkurrancers是一个数组。您需要定义您使用rating_score

的konkurrancers

你应该尝试:

@kategori.konkurrancers[0].rating_score

以上代码仅在您至少有@kategori.konkurrancers个课程

时才有效

<强>更新

@rating = 0
@kategori.konkurrancers.each do |k|
    @rating += k.rating_score
end

@rating /=  @kategori.konkurrancers.count