fields_for and table which has underscore

Hello.
I'm trying to do like this:

# user.rb
class User < ActiveRecord::Base
  has_one :user_profile
  accepts_nested_attributes_for :user_profile
end

# user_profile.rb
class UserProfile < ActiveRecord::Base
  belongs_to :user
end

#app/views/users/_form.html.erb
<%= form_for @user do |user_form| %>
  <%= user_form.fields_for :user_profile do | user_profile_form | %>
    <%= user_profile_form.text_field :favorite_food %>
  <% end %>
<% end %>

but it doesn't render user_profile_form at all.
but it does render if user_profile is profile or user_profile ( no
underscore) .
Is this the way of Rails or a bug??

Can anyone teach me the right way to do it?
Thanks

#app/views/users/_form.html.erb
<%= form_for @user do |user_form| %>
<%= user_form.fields_for :user_profile do | user_profile_form | %>
   <%= user_profile_form.text_field :favorite_food %>
<% end %>
<% end %>

but it doesn't render user_profile_form at all.
but it does render if user_profile is profile or user_profile ( no
underscore) .
Is this the way of Rails or a bug??

It shouldn't make any difference. Does the user actually have a profile/user_profile? (if not the subform wouldn't be rendered)

Fred