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| %>
<%= f.label :username %><br>
<%= f.text_field :username, :class => "form-control" %>
<%= f.fields_for :profile, @user.profile do |profile| %>
<%= profile.label :full_name %><br>
<%= profile.text_field : full_name, :class => "form-control" %>
<% end %>
<%= f.submit "Save", :class => "btn btn-primary" %>
<% 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!