我正在为有潜力上传自己设计(图片/ CSS / JavaScript)的客户提供多租户服务,这让我想知道,为不同客户提供不同资产的合适方式是什么?如何在RoR上实现这样的功能?我已经可以通过使用唯一的登录凭据来区分每个客户的主题。
我已经塞满了Rails的文档,没有任何关于加载不同资产集的相关数据。此外,我搜索了SO / Google,但我找不到任何有用的东西。
如何根据变化的变量动态加载不同的资源(最有可能从数据库中提取结果)。我正在寻找类似的东西:
use_assets(current_tenant.theme_name) #current tenant's theme is loaded(CSS/JS/Images)
答案 0 :(得分:1)
我通过使用资产管道渲染默认布局,然后使用javascript_include_tag等渲染任何客户特定资产,解决了类似情况。我还完成了将资产渲染为帮助程序的详细信息,以便顶部我的布局看起来像这样
!!!
%html
%head
%title Tenantly
= stylesheet_link_tag :application
= javascript_include_tag :application
- if current_tenant && !current_tenant.theme_name.blank?
= custom_theme current_tenant.theme_name
...
这里客户的css可以覆盖基本css,客户的js可以在适当的时候替换标准的js。这应该允许你将主题缩小到只有那些必须被替换的部分。
答案 1 :(得分:-2)
仅基于用户<{p>} set the asset path
config.assets.prefix = "/path_of_user_12345678"
你说你倾注了文档。你没有看到这个?或者由于某种原因它不起作用?