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



我的关联如下:

konkurrancer属于Kategori

Kategori有很多konkurrancer。

在我的konkurrances表中我有:

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>

列ratings保存了评级的数量rating_score保存评分

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

如何在控制器中创建这个?

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

的哪些konkurrancer。

你应该试试:

@kategori.konkurrancers[0].rating_score

上面的代码只会工作,如果你至少有一个@kategori.konkurrancers当然

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

相关内容

  • 没有找到相关文章

最新更新