Ah, now the error has gone after making some change at *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
Thanks for the help
On Thursday, September 11, 2014 12:10:26 AM UTC+8, Vivek Sampara wrote:
>
> Ahmad,
>
> the parameters you're sending from your form should be like this :
>
> {"utf8"=>"✓",
> "authenticity_token"=>"23oUfOBaYAmcrfhW3R11F1x53lJAT760Shv0HqkmEzw=",
> "user"=>{"username"=>"lisa", "profile_attributes"=>{"full_name"=>"Evalisa
> Andriaasdasda"}}, "commit"=>"Save", "id"=>"7"}
>
> Update your form ( name attribute )
>
>
> On Wed, Sep 10, 2014 at 8:58 PM, Amirol Ahmad <[email protected]
> <javascript:>> wrote:
>
>> 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 [email protected] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> To view this discussion on the web visit
>> https://groups.google.com/d/msgid/rubyonrails-talk/041f0101-a81a-48a5-960d-99f386923860%40googlegroups.com
>>
>> <https://groups.google.com/d/msgid/rubyonrails-talk/041f0101-a81a-48a5-960d-99f386923860%40googlegroups.com?utm_medium=email&utm_source=footer>
>> .
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
--
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 [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/rubyonrails-talk/46091a65-4e1b-4487-b2f2-b8dc96c1b71f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.