用户名在params但无法在控制器中使用它?

时间:2016-09-21 10:39:36

标签: ruby-on-rails

这是我的视图文件,我在参数中发送用户ID,

  <%= 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 %>

但是当我尝试在我的控制器中访问它时,我得到以下错误(找不到记录):

this is the error

我在我的控制器方法中找到这样的用户:

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

1 个答案:

答案 0 :(得分:2)

而不是:

@uid = params[:userid]

尝试:

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