我收到以下代码的以下错误
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
答案 0 :(得分:2)
在Ruby中,如果要合并两个哈希,则使用Hash#merge
方法。试试这个:
query_params.merge!({"role" => params[:role]})
答案 1 :(得分:1)
我认为你错过了query_params是Hash而不是数组。您无法将值推送到哈希值。您可以在哈希中设置键的值。 所以你可以这样做
query_params["role"] = params[:role]