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

标签 ruby-on-rails scope account user-accounts

我正在开发一个多用户、多帐户应用程序,其中 1 个帐户可以有 n 个用户。每个用户只能从其帐户访问信息非常重要。我的方法是向数据库中的每个模型添加一个 account_id,然后在每个 Controller 中添加一个过滤器以仅选择具有当前 account_id 的对象。我将使用授权插件。

这种方法是个好主意吗?

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

object.account = @current_account

在每个 CREATE Action 中?也许是过滤器?

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

谢谢你的帮助!

最佳答案

这类似于 User.has_many :emails 场景。您不希望用户通过更改 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])

关于ruby-on-rails - 如何始终为 Rails 中的帐户范围设置值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/792475/

相关文章:

ruby-on-rails - Sunspot solr NO JSP连接错误

javascript - 试图理解这个例子中的函数闭包和词法环境。使用 let 变量声明与对象属性声明

node.js - 使用nodejs抓取网页返回URL

php - 在 Woocommerce 的客户运输部分下向管理用户添加其他字段

android - 其他应用程序可以访问帐户管理器中的用户数据

macos - 需要苹果 Mac 开发者帐户来分发免费应用程序吗?

ruby-on-rails - Rails 4 - 连接查询匹配数组中的所有内容

ruby-on-rails - cucumber 和 Rails 2.3.8 : no such file to load -- spec/expectations (MissingSourceFile)

ruby-on-rails - Rails 应用程序在 Heroku 上崩溃,但在本地运行良好 -> "State changed from starting to crashed"

Javascript 嵌套函数丢失作用域