Reputation: 82
this is my view file i am sending the userid in parameters,
<%= form_for :user, :url=>{:action=>'update'},:method=>"get",:html=>{:class=>'form-horizontal'} do |f|%>
<div class="form-group">
<label class="col-md-4 control-label" for="textinput">Admin</label>
<div class="col-md-4">
<%= f.radio_button :is_admin, 'true', :checked => true %> Yes
<%= f.radio_button :is_admin, 'false' %> no
<%= f.hidden_field :userid, value: @id %>
</div>
</div>
<%= f.submit ('save') %>
<% end %>
but when i try to access it in my controller i get following error (record not found):
I am finding user in my controller method like this:
def update
@users = User.all
@uid = params[:userid]
@users = User.find_by_id!(@uid)
if @users.update_attributes(user_params)
flash[:notice] = "User updated successfully."
redirect_to :action=>'view'
else
flash[:notice] = "Error while updating user."
render 'edit'
end
end
private
def user_params
params.require(:user).permit(:is_admin,:is_member)
end
end
Upvotes: 0
Views: 29
Reputation: 1399
Instead of:
@uid = params[:userid]
Try:
@uid = params[:user][:userid]
Upvotes: 2