Я вызвал функцию из класса, чтобы найти все элементы, относящиеся к определенному идентификатору, в отношении многих ко многим HABTM.
Процедуры -> Задачи с таблицей соединений: tasks_tasks
Я вызываю информацию как @example = Процедура. 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
процедуры -> задач много ко многим через таблицу присоединения процедур_tasks.
когда вы запускаете новый процесс вывода из эксплуатации, вы указываете модель и операционную систему, модель и операционная система указывают, какую процедуру вы выполняете, каждая процедура имеет список задач, доступных в таблице соединений. Я хочу создать запись в 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 будет извлекать задачи, связанные с процедурой, но я не знаю, как управлять данными, извлеченными из базы данных в рельсах, я не смог получить доступ к атрибутам возвращаемого объекта через контроллер потому что они еще не были обработаны?
в идеале я хотел бы иметь возможность форматировать эти данные так, чтобы у меня был только массив идентификаторов task_id, которые я затем мог бы перебирать, создавая новые строки в соответствующей таблице.