Hi there, i have a form with some fields where i put info about a university project like "name","title","code" etc. I create this project successfully but i want to update a specific attribute from the model teacher too. I have a field in there with the name "last_project_created" and i want to update it with the "code" parameter from this form. I have used something like this but it does not works: @current_teacher.update_attributes(:last_project_created=>params[:code]) I put this line into the create method after the @project.save line. Any ideas what i can do??? Thanks Kostas -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
> I have used something like this but it does not works: > @current_teacher.update_attributes(:last_project_created=>params[:code])If this isn''t working, the first place I''d look is in params[:code]. What''s in that at the time this runs ? Also don''t forget you could use update_attribute in a situation like this eg: @current_teacher.update_attribute(:last_project_created, params[:code]) update_attributes iterates over each key in the hash and calls update_attribute on it, so you''re saving rails a step or 2. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Kostas Lps wrote in post #976857:> Hi there, > i have a form with some fields where i put info about a university > project like "name","title","code" etc. > I create this project successfully but i want to update a specific > attribute from the model teacher too. I have a field in there with the > name "last_project_created" and i want to update it with the "code" > parameter from this form. > > I have used something like this but it does not works: > @current_teacher.update_attributes(:last_project_created=>params[:code]) > > I put this line into the create method after the @project.save line. > > Any ideas what i can do???I would put the foreign key in the projects table. Assuming a teacher has many projects then I would do: * define a has_many from teacher to project * define an association that _automatically_ calculates the most recently created project by a teacher * also define the belongs_to in the Project class and use that when creating the new project. (caveat: code not tested) class Teacher ... has_many :projects has_one :most_recently_created_project, :class_name => "Project", :order => "created_at DESC" ... end class Project ... #makes lists of projects always predictable order default_scope :order => "created_at DESC" belongs_to :teacher ... end This would allow you to say: in the controller: @project = Project.new(params) @project.teacher = @current_teacher if @project.save # success else # retry end later on: #all projects by this teacher teacher.projcts #calculate most recent project of this teacher teacher.most_recently_created_project HTH, Peter -- Posted via http://www.ruby-forum.com/. -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Hello to both! @Luke: I finally used the following: @current_teacher.update_attribute(:last_project_created, @project.code) that worked fine! @Peter: i think your sollution is much better and i will try it when i finish my project that i''m working on! :)) Kostas On Jan 23, 9:04 pm, Peter Vandenabeele <li...-fsXkhYbjdPsEEoCn2XhGlw@public.gmane.org> wrote:> Kostas Lps wrote in post #976857: > > > Hi there, > > i have a form with some fields where i put info about a university > > project like "name","title","code" etc. > > I create this project successfully but i want toupdatea specific > > attribute from the model teacher too. I have a field in there with the > > name "last_project_created" and i want toupdateit with the "code" > > parameter from this form. > > > I have used something like this but it does not works: > > @current_teacher.update_attributes(:last_project_created=>params[:code]) > > > I put this line into the create method after the @project.save line. > > > Any ideas what i can do??? > > I would put the foreign key in the projects table. > Assuming a teacher has many projects then I would do: > > * define a has_many from teacher to project > > * define an association that _automatically_ calculates > the most recently created project by a teacher > > * also define the belongs_to in the Project class and use that > when creating the new project. > > (caveat: code not tested) > > class Teacher > ... > has_many :projects > has_one :most_recently_created_project, :class_name => "Project", > :order > => "created_at DESC" > ... > end > > class Project > ... > #makes lists of projects always predictable order > default_scope :order => "created_at DESC" > belongs_to :teacher > ... > end > > This would allow you to say: > > in the controller: > > @project = Project.new(params) > @project.teacher = @current_teacher > if @project.save > # success > else > # retry > end > > later on: > > #all projects by this teacher > teacher.projcts > > #calculate most recent project of this teacher > teacher.most_recently_created_project > > HTH, > > Peter > > -- > Posted viahttp://www.ruby-forum.com/.-- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.