【发布时间】:2016-02-15 17:12:13
【问题描述】:
我正在使用 rails 中的微服务框架,并且遇到了一个视图,我们希望在该视图中链接到几个不同的应用程序,这些应用程序将引用正在显示的 user。 user 通过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