重写此代码的最佳方法是什么(Line太长)

时间:2014-12-16 13:04:10

标签: ruby

我正在使用rubocop检查我的代码并获取此代码的警告:

def questions_from_time_by_page(t, pagesize, page)
  "#{@base_url}questions?pagesize=#{pagesize}&page=#{page}&fromdate=#{t}&site=stackoverflow&key=#{@key}"
end
  

lib / stackify.rb:99:81:C:行太长。 [八十零分之一百〇八]         "#{@ BASE_URL}问题页面大小=#{页面大小}&放大器;页=#{PAGE}&安培;没有fromdate =#【T}&安培;现场=计算器和放大器;关键=#{@键}"

重写它的最佳方法是什么?

将行拆分为多行?

def questions_from_time_by_page(t, pagesize, page)
  "#{@base_url}questions?pagesize=#{pagesize}&page=#{page}" + 
  "&fromdate=#{t}&site=stackoverflow&key=#{@key}"
end

或者可能有更好的方法?

2 个答案:

答案 0 :(得分:4)

你可以在Hash上调用to_query来处理url编码等等。所以可能是这样的:

params = {
  :a => "http://google.com",
  :b => 123
}
url = "http://example.com?#{params.to_query}"

这会产生"http://example.com?a=http%3A%2F%2Fgoogle.com&b=123"

告诉我它是否解决了这个问题。

答案 1 :(得分:1)

G.B。答案是一种解决问题的实用方法。

但是如果你想保留你的字符串,你可以使用""\制作多行字符串

e.g。

"#{@base_url}questions?pagesize=#{pagesize}&page=#{page}"\
"&fromdate=#{t}&site=stackoverflow&key=#{@key}"