Hi All,
I’m trying to learn Ruby on Rails and have got an issue with the
validation of a nested form. I think I have got it setup correctly as it
appears to be saving the data as expected, but it is not wrapping the
CSS class (field_with_errors) to the fields, and if data is entered into
the nested fields it disappears on form submit (if there are validation
errors). The validation messages are being displayed correctly.
Here are the relevant bits of code (some of the forms have been
ommitted) - I am hoping somebody more experienced will be able to spot
where I have gone wrong!
/app/models/user.rb
class User < ActiveRecord::Base
has_one :feature
accepts_nested_attributes_for :feature
end
/app/models/feature.rb
class Feature < ActiveRecord::Base
belongs_to :user
validates :profile, :hobbies, :presence => true
end
/app/views/users/_form.html.erb
<% @user.build_feature %>
<%= form_for @user, :url => { :controller => :users, :action => “create”
} do |user| %>
<%= user.text_field :email %>
<%= render :partial => ‘features/form’,
:locals => { :form => user } %>
/app/views/features/_form.html.erb
<%= form.fields_for :feature do |f| %>
<%= f.text_area :profile %>
Debugging @user.errors shows the subform items are being outputted as
follows:
:“feature.profile”: can’t be blank
Wheras the other form shows the error messages being output:
:first_name: can’t be blank
I’ve googled this issue but haven’t found anything that has worked -
would appreciate any help!
Thanks