有没有更简单的方法来写下来并防止重复代码?

问题描述 投票:0回答:1

我正在将中间人(Ruby on Rails)与 HAML 结合使用。

我在每页的开头都有这样的代码:

- if pageversion == "test"
   - domain = data.testvars.domain
   - action_url = data.testvars.openlocker_url
   - lockergroup = data.testvars.lockergroup

- else
  - domain = data.prdvars.domain
  - action_url = data.prdvars.openlocker_url
  - lockergroup = data.prdvars.lockergroup

但我想知道是否可以做这样的事情:

domain = data.#{pageversion}vars.domain ...

因此每次解析 #{pageversion} 并使用输出创建 data.testvars.domain 或 data.prdvars.domain。

所以我想根据 #{pageversion} 指定要使用哪个 .yml 文件,或者将之前的字符串解释为变量名称的一部分以在正确的文件中查找。

知道如何做到这一点吗?

我目前的做法涉及大量重复代码,尝试任何其他方式只会产生错误。

ruby-on-rails haml middleman
1个回答
0
投票

在使用之前,您需要预先分配正确的值:

data_vars = pageversion == "test" ? data.testvars : data.prdvars

然后您可以使用分配的值而无需重复代码:

domain = data_vars.domain
action_url = data_vars.openlocker_url
lockergroup = data_vars.lockergroup
© www.soinside.com 2019 - 2024. All rights reserved.