Rails, как различить две колонки в контроллере? - PullRequest
0 голосов
/ 11 апреля 2011

Моя связь описана ниже:

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/ рейтинги

Как мне создать это в моем контроллере?

1 Ответ

0 голосов
/ 11 апреля 2011

Поскольку kategori имеет несколько konkurrancers, так что konkurrancers является массивом.Вам необходимо определить, какие konkurrancers вы принимаете rating_score

Вы должны попробовать:

@kategori.konkurrancers[0].rating_score

Над кодом будет работать, только если у вас есть по крайней мере 1 @kategori.konkurrancers конечно

ОБНОВЛЕНИЕ

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

@rating /=  @kategori.konkurrancers.count
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...