2013-07-19 5 views
0

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

def create 
@project = Project.new(params[:project]) 
if @project.save 
    redirect_to new_project_path 
end 

[email protected]_str.split(";") 
@users = User.where(:code => student) 

@users.each do |c| 
puts c.email 
end 

@users.each do |c| 
puts "I'm here" 
c.projects = "#{c.projects};#{@project.id}" 

end 



end 

Таким образом, в способе создания, каждый раз, когда новый проект создается строка с именем student_str хранятся где идентификационный номер каждого ученика разделяется знаком «;». Я разделил эту строку на массив, используя функцию split, чтобы получить массив идентификаторов учеников. У меня есть ставит c.email и ставит «Я здесь», чтобы убедиться, что петли работают нормально. Я получаю правильные выходы на терминале.

Проблема здесь является

c.projects = "#{c.projects};#{@project.id}" 

Это просто, кажется, не работает. Моя модель не обновляется при выполнении этой строки. Однако я не получаю ошибок. Можете ли вы сказать мне, что мне нужно сделать, чтобы исправить это?

спасибо!

ответ

1

После того, как вы обновили атрибут проектов, вам необходимо позвонить c.save. В противном случае объект обновляется, но не база данных, поэтому при следующем его загрузке изменения исчезнут.

+0

Спасибо, друг! Это здорово! Примите мое согласие :) –