присвоение значений модели

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

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, где идентификационный номер каждого учащегося отделяется знаком «;». Я разделил эту строку на массив, используя функцию разделения, чтобы получить массив идентификаторов учащихся. У меня есть puts c.email и puts "Я здесь", чтобы убедиться, что циклы работают нормально. Я получаю правильные результаты на терминале.

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

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

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

Спасибо!


person Alok Mysore    schedule 19.07.2013    source источник


Ответы (1)


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

person davidb    schedule 19.07.2013