【问题标题】:What is best practice when linking to several similar sources in a rails view?在 Rails 视图中链接到多个类似源时的最佳做法是什么?
【发布时间】:2016-02-15 17:12:13
【问题描述】:

我正在使用 rails 中的微服务框架,并且遇到了一个视图,我们希望在该视图中链接到几个不同的应用程序,这些应用程序将引用正在显示的 useruser 通过user-urn 标识。

关于我们要链接的应用程序的一些说明 --

  • 每个不同的应用程序都有一个唯一的 url
  • 并非每个应用程序都通过相同的路径引用user -- 即意味着我们可以拥有/users/user-urn/users?urn=user-urn
  • 我们希望能够配置外部应用程序 URL 以进行测试。

我的第一个直觉是添加一个链接助手,它将采用user 的参数(从视图中给出),生成link_to 策略,并将url 存储为ENV。看起来像这样--

def app_1_link(user) url = "#{ENV['APP_1_URL']}/users/#{user.urn}" link_to "Application 1", url, :target => "_blank" end

这使得助手太大,因为我们需要许多不同的助手来实现相同的目标。

我的问题是——使用ENV vars 直接将所有这些链接添加到视图中是不是不好的做法?

例如(<p><%= link_to "App 1", "#{ENV['APP_1_URL']}/users/#{@user.urn}", :target => "_blank" %> </p>

或者我应该构建一些额外的类/模块逻辑来正确处理构建链接?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 model-view-controller environment-variables


    【解决方案1】:

    我会创建一个数据库表来保存不同应用程序的信息以及相应的模型。一旦您开始在配置文件中拥有大量内容并存储为常量,这通常表明您应该将其移至数据库中。

    然后,您可以在 ExternalApp 模型(或您所称的任何名称)中使用模型方法来生成必要的 url。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-18
      • 1970-01-01
      • 2020-11-24
      相关资源
      最近更新 更多