0

我对 Rails 比较陌生,并且忙于构建具有各种访问级别的应用程序,例如 global_admin 和 company_admin。现在 company_admin 应该只能访问特定公司,而不能访问其他公司。

我的路线:

  resources :companies do
    resources :groups do
      resources :users
    end
  end

我创建了一个助手来检查访问,其中包含以下内容:

 if params[:company_id].present?
   @company = Company.find(params[:company_id])
   ...

因此,如果我调用,例如 ^/companies/1/groups ^/companies/1/groups/1/users 查询返回 true 并找到 company_id,但如果我调用 ^/companies/1 或 ^/companies/2 它返回假。如果 company_id 存在(或至少看起来存在),为什么它不获取它?

提前致谢!

4

1 回答 1

1

当您不访问嵌套资源时,params[:company_id]变为params[:id]

团体也是如此。如果你访问/companies/1/groups/1params[:id]会给你组的 id,但如果你访问/companies/1/groups/1/users/1params[:id]会给你用户的 id,组的 id 会在params[:group_id]

于 2012-05-09T17:55:55.850 回答