将字段添加到哈希

时间:2013-11-25 11:05:36

标签: ruby

我收到以下代码的以下错误

undefined method `push=' for {"organisation_id"=>1}:Hash

如果在URL中传递了角色的参数,我想将其作为查询参数添加。我来自PHP开发背景,所以我发现很难管理Rails对象/数组。

def index
    case @the_current_user.role
      when 'admin'
        query_params = {"organisation_id"=> @the_current_user.organisation_id}
      else
        query_params = {"organisation_id" => @the_current_user.organisation_id, "team_id" => @the_current_user.team_id}
    end

    if params[:role]
      query_params.push = {"role" => params[:role]}
    end

    @users = User.all(query_params).offset(@offset.to_i).limit(@limit.to_i)
    render json: @users
  end

2 个答案:

答案 0 :(得分:2)

在Ruby中,如果要合并两个哈希,则使用Hash#merge方法。试试这个:

query_params.merge!({"role" => params[:role]})

答案 1 :(得分:1)

我认为你错过了query_params是Hash而不是数组。您无法将值推送到哈希值。您可以在哈希中设置键的值。 所以你可以这样做

query_params["role"] = params[:role]