比String#%rubocop更喜欢的格式

时间:2018-09-21 11:00:17

标签: ruby rubocop

request_url ||= URI_FORMATS[:home_page] % {
          base_uri:     AppConfig.test_api['base_url'],
          end_point:    AppConfig.test_api['end_points']['home_page'],
          client_id:    AppConfig.test_api['client_id'],
        }

我正在通过String#%rubocop错误获取“收藏夹”格式。 任何想法如何解决这个问题。我只是在这里查看了错误原因

https://quynhcodes.wordpress.com/2017/03/29/string-interpolation-in-ruby/

但是我在这里不使用任何字符串插值法。

那么我们如何解决这个问题。

1 个答案:

答案 0 :(得分:2)

首先,这与字符串插值无关,而与字符串格式化有关。 rubocop Ruby style guide说:

  

在相当神秘的sprintf方法上更喜欢使用format及其别名String#%

这意味着改变

request_url ||= URI_FORMATS[:home_page] % {
  base_uri:  AppConfig.test_api['base_url'],
  end_point: AppConfig.test_api['end_points']['home_page'],
  client_id: AppConfig.test_api['client_id'],
}

request_url ||= format(
  URI_FORMATS[:home_page],
  base_uri:  AppConfig.test_api['base_url'],
  end_point: AppConfig.test_api['end_points']['home_page'],
  client_id: AppConfig.test_api['client_id'],
)