在rails视图中链接到几个类似的源时,最佳做法是什么?

时间:2016-02-15 17:12:13

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

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

关于我们要链接的应用程序的一些注意事项 -

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

我的第一直觉是添加一个链接帮助器,它将获取user的参数(从视图中给出),生成link_to策略,其中url存储为{{1} }。它看起来像这样 -

ENV

这使助手太大,看到我们需要许多不同的助手来实现同样的目标。

我的问题是 - 将所有这些链接直接添加到包含def app_1_link(user) url = "#{ENV['APP_1_URL']}/users/#{user.urn}" link_to "Application 1", url, :target => "_blank" end vars的视图中是不好的做法?

e.g。 (ENV

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

1 个答案:

答案 0 :(得分:0)

我会创建一个db表来保存不同应用程序的信息,以及相应的模型。一旦你开始在配置文件中有大量的东西列表,存储为常量,通常表明你应该把它移到数据库中。

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