Предполагая, что и Prejob
, и Demojob
являются активными моделями записей, вы должны использовать attributes
в вызове конструктора.Также лучше создать новый массив с map
или добавить его, чем назначать новое значение переменной на каждом шаге итерации.
@demojobs = @pre.jobs.map do |job|
Demojob.new(job.attributes.except(:id))
end
render json: @demojobs
РЕДАКТИРОВАТЬ:
Чтобы добавить несколько пользовательскихатрибуты, вы можете объединить их в хэш или установить их вручную:
@demojobs = @pre.jobs.map do |job|
Demojob.new(job.attributes.except(:id).merge(attr1: val1, attr1: val2))
end
render json: @demojobs
@demojobs = @pre.jobs.map do |job|
Demojob.new(job.attributes.except(:id)).tap do |dj|
dj.attr1 = val1
dj.attr2 = val2
end
end
render json: @demojobs