Amirol Ahmad
2014-Sep-10 15:28 UTC
[ERROR] Unpermitted Parameters: profile (NestedAttributes)
Hi guys,
Im having a problem with my rails apps where error "Unpermitted Parameters:
profile" appear
*UsersController*
def edit
if @user
render
else
redirect_to admin_users_path, notice: "User profile not found."
end
end
def update
# Rails.logger.debug "===> (1)"
if @user.update(user_params)
redirect_to edit_admin_user_path, notice:
"#{@user.profile.nama_penuh} account has been updated."
else
render 'edit'
end
end
private
def set_user
@user = User.find(params[:id])
end
def user_params
params.require(:user).permit(:id, :login, :email, profile_attributes:
[:user_id, :full_name])
end
*edit.html.erb*
<%= form_for :user, url: admin_user_path(@user), method: :patch do |f| %>
<div class="form-group">
<%= f.label :username %><br>
<%= f.text_field :username, :class => "form-control" %>
</div>
<%= f.fields_for :profile, @user.profile do |profile| %>
<div class="form-group">
<%= profile.label :full_name %><br>
<%= profile.text_field : full_name, :class => "form-control"
%>
</div>
<% end %>
<div class="form-group">
<%= f.submit "Save", :class => "btn btn-primary"
%>
</div>
<% end %>
*User.rb*
class User < ActiveRecord::Base
has_one :profile
accepts_nested_attributes_for :profile #, update_only: true,
allow_destroy: true
validates :username, :uniqueness => { :case_sensitive => false }
end
*Profile.rb*
class Profile < ActiveRecord::Base
belongs_to :user
validates_presence_of :user_id
validates_presence_of :full_name
end
*development.log*
Started PATCH "/master/users/7" for 127.0.0.1 at 2014-09-10 23:18:26
+0800
Parameters: {"utf8"=>"✓",
"authenticity_token"=>"23oUfOBaYAmcrfhW3R11F1x53lJAT760Shv0HqkmEzw=",
"user"=>{"username"=>"lisa",
"profile"=>{"full_name"=>"Evalisa
Andriaasdasda"}}, "commit"=>"Save",
"id"=>"7"}
[1m [35mUser Load (0.3ms) [0m SELECT `users`.* FROM `users` WHERE
`users`.`id` = 7 LIMIT 1
[1m [36mUser Load (0.3ms) [0m [1mSELECT `users`.* FROM `users` WHERE
`users`.`id` = 6 ORDER BY `users`.`id` ASC LIMIT 1 [0m
*Unpermitted parameters: profile*
[1m [35m (0.2ms) [0m BEGIN
[1m [36mUser Exists (0.4ms) [0m [1mSELECT 1 AS one FROM `users`
WHERE (`users`.`username` = 'lisa' AND `users`.`id` != 7) LIMIT 1 [0m
[1m [35m (0.2ms) [0m COMMIT
[1m [36mProfile Load (0.4ms) [0m [1mSELECT `profiles`.* FROM
`profiles` WHERE `profiles`.`user_id` = 7 LIMIT 1 [0m
I really dont know what is the mistake. Please help.
Thanks in advance!
--
You received this message because you are subscribed to the Google Groups
"Ruby on Rails: Talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To post to this group, send email to
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/041f0101-a81a-48a5-960d-99f386923860%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.