Вызов параметра модели, которая принадлежит другому - PullRequest
0 голосов
/ 08 июля 2019

У меня есть ProgressBoard модель, контроллер и вид.Каждый has_many :progress_board_metrics который belongs_to это.

У меня есть только модель ProgressBoardMetric (без контроллера или вида), он принадлежит progress_board

В моем progress_board виде естьотображает много уникальных progress_board_metrics

Я хочу вызвать параметр metric_id из модели progress_board_metrics, когда нажимаю кнопку на metric, но мне трудно это делать.

Мой настоящий код, пытающийся вызвать этот параметр:

@progress_board.progress_board_metrics.metric_id

Я пробовал некоторые варианты, например @progress_board.metric_id или #@progress_board_metrics.metric_id, но ничего не помогло.В этот момент я потерян

class ProgressBoardMetric < ApplicationRecord
  belongs_to :progress_board
  ...
  def metric_id
    if self.metric_type == "Change"
      self.change.id
    elsif self.metric_type == "Indicator"
      self.indicator.id
    elsif self.metric_type == "Outcome"
      self.outcome.id
    end
  end
  ...
end

Примечание: «изменение», «индикатор» и «результат» metric_type

1 Ответ

2 голосов
/ 08 июля 2019

Вы пытаетесь выбрать единственное значение id во многих записях. Вам нужно выбрать фактический progress_board_metric для вызова id вкл.

Например: @progress_board.progress_board_metrics.first.metric_id выберет первое в списке. @progress_board.progress_board_metrics.last.metric_id выберет последнее в списке.

Вы можете и, вероятно, в конечном итоге будете использовать каждый блок do для отображения идентификатора метрики каким-либо образом.

@progress_board.progress_board_metrics.each do |metric|
  metric.metric_id
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...