I think your fields_for line is wrong. It should match the association
name 'langs':
<% f.fields_for :langs do |l| %>
Regards
--
Andrés Cirugeda Esco
'All we have to decide is what to do with the time that is given to us'.
El 28/07/2009, a las 20:22, Aldo Italo escribió:
>
> hi, i i have a model (Page) and i want to put their multilanguage text
> with a polimorphic association model (Lang), because i want to use in
> future this model for containing others modules text (example:
> Category,
> Notice, ecc..).
>
>
>
> now i make this code on models:
>
> -------------------------
> class Page < ActiveRecord::Base
> has_many :langs, :as => :langable
> accepts_nested_attributes_for :langs
> end
>
> class Lang < ActiveRecord::Base
> belongs_to :langable, :polymorphic => true
> #other code .....
> end
> -------------------------
>
>
> i create form Page with the nested lang fields (i create the new page
> with one record on the model Lang, for insert others Langs i use
> separated forms):
>
> -------------------------
> <% form_for([:admin, @page], :html => {:multipart => true}) do |f| %>
> <%= error_messages_for :page %>
> <%# ....others fields .... %>
> <% f.fields_for :lang do |l| %>
> <%= l.hidden_field :langcode, :value => "en" %>
> <%= l.label :title, "title" %><br />
> <%= l.text_field :title %>
> <%# ....others fields .... %>
> <% end %>
> <%# ....others fields .... %>
> <% end %>
> -------------------------
>
>
> the controller is the same than previously i make the nested modify:
>
> -------------------------
> #other code .....
>
> # CREATE PAGE
> def create
> @page = Page.new(params[:page])
> respond_to do |format|
> if @page.save
> format.html { redirect_to([:admin, @page]) }
> else
> format.html { render :action => "new" }
> end
> end
> end
>
> #other code .....
> -------------------------
>
>
> but on create page i retrieve this error:
>
>
> unknown attribute: lang
>
>
> /Users/xxx/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/active_record/
> base.rb:2745:in
> `attributes='
> /Users/xxx/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/active_record/
> base.rb:2741:in
> `each'
> /Users/xxx/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/active_record/
> base.rb:2741:in
> `attributes='
> /Users/xxx/.gem/ruby/1.8/gems/activerecord-2.3.2/lib/active_record/
> base.rb:2439:in
> `initialize'
> /Users/xxx/Sites/htdocs/rails/my_site/app/controllers/admin/
> pages_controller.rb:33:in
> `new'
> /Users/xxx/Sites/htdocs/rails/my_site/app/controllers/admin/
> pages_controller.rb:33:in
> `create'
>
> i have verified the code but all seem ok.
> any idea?
> --
> 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 [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
-~----------~----~----~----~------~----~------~--~---