如何使用嵌套引号将变量传递给字符串 - Ruby

时间:2015-06-05 01:07:35

标签: ruby

我有一系列球队名称:

teams = ["Atlanta Hawks","Boston Celtics","Brooklyn Nets"]

我想迭代团队数组,并将每个团队插入到css选择器中以获得' title':

teams.each do |team_name|
    basketball_team_links << basketball_teams.css("a[class='lnkBeatWriterLeague'][title=#{team_name}]").map { |link| link['href'] }
end

显然我的方法存在缺陷,我无法弄清楚如何阅读| team_name |变量

1 个答案:

答案 0 :(得分:3)

你尝试过:

"a[class='lnkBeatWriterLeague'][title='#{team_name}']"

或:

"a[class='lnkBeatWriterLeague'][title=\"#{team_name}\"]"

或:

%Q{a[class='lnkBeatWriterLeague'][title="#{team_name}"]}

或:

"a[class='lnkBeatWriterLeague'][title='" + team_name + "']"

编辑:

根据@Amadan在评论中的建议,在一些应考虑的角落案例中添加注释。

teams字符串是否来自用户,您可能会在其中包含撇号和引号。
有两种简单的方法可以正确地逃避它们:

require 'cgi'
CGI.escapeHTML "input string"

require 'json'
"input string".to_json