aashi0001
aashi0001

Reputation: 82

userid in params but unable use it in controller?

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):

this is the error

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

Answers (1)

oj5th
oj5th

Reputation: 1399

Instead of:

@uid = params[:userid]

Try:

@uid = params[:user][:userid]

Upvotes: 2

Related Questions