加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 如何在Rails中始终为帐户范围设置值?

发布时间:2020-12-17 03:08:22 所属栏目:百科 来源:网络整理
导读:我正在开发一个多用户,多帐户的应用程序,其中一个帐户可以有n个用户.每个用户只能从其帐户访问信息非常重要.我的方法是为数据库中的每个模型添加一个account_id,然后在每个控制器中添加一个过滤器,只选择具有当前account_id的对象.我将使用授权插件. 这种方
我正在开发一个多用户,多帐户的应用程序,其中一个帐户可以有n个用户.每个用户只能从其帐户访问信息非常重要.我的方法是为数据库中的每个模型添加一个account_id,然后在每个控制器中添加一个过滤器,只选择具有当前account_id的对象.我将使用授权插件.

这种方法是个好主意吗?

始终为未创建的每个对象设置account_id的最佳方法是什么

object.account = @current_account

在每个CREATE动作中?也许过滤器?

此外,我不确定为选择选项实现过滤器的最佳方法.我需要类似一般条件的东西:无论SQL语句中出现什么,总有一个“WHERE account_id = XY”.

谢谢你的帮助!

解决方法

这类似于User.has_many:电子邮件方案.您不希望用户通过更改URL中的ID来查看其他人的电子邮件,因此您执行此操作:

@emails = current_user.emails

在你的情况下,你可以做这样的事情:

class ApplicationController < ActionController::Base
  def current_account
    @current_account ||= current_user && current_user.account
  end
end

# In an imagined ProjectsController
@projects = current_account.projects
@project = current_account.projects.find(params[:id])

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读