代码之家  ›  专栏  ›  技术社区  ›  james

如何从应用程序本身设置应用程序的配置或管理栏

  •  0
  • james  · 技术社区  · 7 年前

    我有一个用rails制作的应用,部署在heroku上。假设背景图像有两个选项——“陆地”和“海洋”。

    所以我们可以将其定义为heroku级别的环境配置,也可以在任何相关的控制器或助手方法中定义。但所有这些都是需要代码的“编程”解决方案。即使登录heroku仪表板,管理员仍需要离开应用程序本身,在另一个平台上登录,然后进行更改。

    我想为管理员构建一个前端GUI,使用应用程序中的这个变量更改背景图像。因此,管理员永远不必离开应用程序或知道任何代码。

    但你是怎么做到的?顺便说一句,我意识到heroku有一个平台API,但如果可能的话,我正在寻找另一个只支持rails的解决方案,因为这个背景图像变量与我希望保留在heroku上的实际配置变量的重要性不一样(即如果没有设置,只会没有图像,而不是某种应用程序错误)

    1 回复  |  直到 7 年前
        1
  •  0
  •   ddonche    7 年前

    我实现这一点的方法是在某个模型的某个地方设置,可能使用枚举。例如,我的模型可以称为设置。

    class Setting < ApplicationRecord
      ...
      enum background-setting: { land: 0, sea: 1 }
    

    然后在视图中,只需执行if-else并将视图设置为显示所需的任何div。

    <% if @something.background-setting == "land" %>
      <div class="land-bg"></div>
    <% else %>
      <div class="sea-bg"></div>
    <% end %>
    

    然后只需在css中指定bg图像。我想用我自己工作中更实际的例子来解释更容易,比如说我有两种类型的用户(普通用户和出版商)。我可以使用数据库中的用户类型作为如何在两者之间显示不同背景的决定因素。所以 @something.background-setting ,我会去拜访 @user.usertype @user.role .