цикл через объект данных рельсы от контроллера

0

Я вызвал функцию из класса, чтобы найти все элементы, связанные с конкретным идентификатором, в отношении многих отношений HABTM.

Процедуры → Задачи с таблицей соединений: procedure_tasks

Я вызываю информацию как @example = Procedure.get_tasks (1,1)

Я хотел бы иметь возможность перебирать возвращаемые данные, чтобы я мог создать экземпляр каждого task_id, относящегося к рассматриваемой процедуре

  def self.get_tasks(model_id, operating_system_id)
    find(:first,  :select => 'tasks.id, procedures.id', :conditions => ["model_id = ? AND operating_system_id = ?", model_id, operating_system_id], :include => [:tasks])
  end

Я попытался выполнить данные как обычно, а затем использовать .each do | f | в слое представления, но я получаю:

undefined method `each' for #<Procedure:0x2b879be1db30>

Оригинальный вопрос:

Я создаю приложение rails для отслеживания процессов, которые мы выполняем. Когда создается новый экземпляр процесса, я хочу автоматически создавать строки для всех задач, которые необходимо выполнить. таблицы:

  • decommissions
  • Модели
  • operating_systems
  • Процедуры
  • Задачи
  • procedures_tasks
  • host_tasks

процедуры → задачи много для многих через таблицу join_tasks join.

когда вы начинаете новый процесс снятия с эксплуатации, вы указываете модель и ОС, модель и ОС определяют, какую процедуру вы следуете, каждая процедура имеет список задач, доступных в таблице соединений. Я хочу создать запись в host_tasks для каждой задачи, относящейся к процедуре, относящейся к создаваемой отмене.

Я делал это в течение нескольких дней, любые предложения?

class Procedure < ActiveRecord::Base
  has_and_belongs_to_many :tasks
 #has_many :tasks, :through => :procedures_tasks
# has_many :procedures_tasks
  belongs_to :model
  belongs_to :operating_system
  validates_presence_of :name
  validates_presence_of :operating_system_id
  validates_presence_of :model_id

  def self.get_tasks(model_id, operating_system_id)
    find(:first,  :select => 'tasks.id, procedures.id', :conditions => ["model_id = ? AND operating_system_id = ?", model_id, operating_system_id], :include => [:tasks])
  end

end

метод get_tasks будет получать задачи, связанные с этой процедурой, но я не знаю, как манипулировать данными, вытащенными из базы данных в rails, я не смог получить доступ к атрибутам возвращаемого объекта через контроллер потому что они еще не были представлены?

В идеале я хотел бы иметь возможность форматировать эти данные, чтобы у меня был только массив task_id, который затем можно прокрутить, создав новые строки в соответствующей таблице.

  • 0
    Что вы имеете в виду под манипулированием данными? Вы ищете HTML-форму, с которой вы можете управлять всем?
  • 0
    Существует форма для запуска процесса вывода из эксплуатации, вы вводите все детали, которые добавляются в таблицу вывода из эксплуатации. После этого я хотел бы вытащить demission_id и все соответствующие task_id и добавить их в таблицу host_tasks. Я хочу добавить их на уровне контроллера автоматически. Когда я говорю «манипулировать данными», я имею в виду «обрезать» их так, чтобы @example = [task_id1, task_id2 и т. Д.] Вместо того, чтобы иметь @example = «сумасшедший объект ruby с кучей атрибутов, вложенных в себя»
Показать ещё 1 комментарий
Теги:
loops

1 ответ

0
Лучший ответ

Это не было циклом, потому что я использовал первый параметр при поиске данных. Я изменил его на: все, что позволило мне .each do | f | и др.

Не самый лучший вариант, но в любом случае будет только один вариант, поэтому он не вызовет проблемы.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню