On Feb 14, 2010, at 1:29 PM, Greg Ma wrote:

Hi,
I added a textarea to my edit student form, to be able to add tags to
this student. I did the simple code below, and this is the error i get.
I can't see what i did wrong...

#Error message
Processing StudentsController#update (for 127.0.0.1 at 2010-02-14
10:13:22) [PUT]
 Parameters: {"commit"=>"Submit",
"authenticity_token"=>"PNvzBi6Ro1XJg0c6CfgKsEw+wfg6DwZfnV2FUpRgqPs=",
"id"=>"1", "student"=>{"full_name"=>"Gregory ", "cb_id"=>"68",
"tag_attributes"=>"greg,toto", "description"=>"voila une jolie
description"}}
 Student Columns (12.8ms)   SHOW FIELDS FROM `students`
Student Load (0.3ms) SELECT * FROM `students` WHERE (`students`.`id`
= 1)
WARNING: Can't mass-assign these protected attributes: tag_attributes


#Html form
<% form_for @student do |f| %>
 <%= f.error_messages %>
 <p>
   <%= f.label :cb_id %><br />
   <%= f.text_field :cb_id %>
 </p>
 <p>
   <%= f.label :full_name %><br />
   <%= f.text_field :full_name %>
 </p>
 <p>
   <%= f.label :description%><br />
   <%= f.text_area :description %>
 </p>
 <p>
 <%= text_area_tag "student[tag_attributes]" %>

 <p><%= f.submit "Submit" %></p>
<% end %>
#END


#Student Class
class Student < ActiveRecord::Base
 has_and_belongs_to_many :data_files
 has_and_belongs_to_many :tags

 attr_accessible :cb_id, :full_name, :description

You either need to add :tag_attributes to this list to make it accessible for mass updates...

Or, in the controller code that you didn't show, pluck the tag_attributes out:
  tag_attributes = params[:student].delete('tag_attributes')
before you call @student.update_attributes(params[:student])
and add a call to:
  @student.tag_attributes = tag_attributes

-Rob


 validates_uniqueness_of :cb_id

 def tag_attributes=(tags)
   splits = tags.split(',')
   splits.each do |tag|
     Tag.build(tag)
   end
 end
end
#END

Thanks for your help
Greg
--
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- [email protected]. To unsubscribe from this group, send email to [email protected] . For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en .


Rob Biedenharn          http://agileconsultingllc.com
[email protected]



--
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 [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to