我有一个方法来检查一个单词是否包含某个字母。字符串#include?方法应该返回true如果字符串对象包含任何位置的字母。但是,如果字母(char_clicked)和单词第一个字母(final_word)中的字母匹配,我的方法只返回true。例如,如果final_word参数是西班牙语,如果“S”是char_clicked,则该方法仅返回true,如果char_clicked是“_pain”中的任何一个,它将返回falseString#include?只检查第一个位置
您能缓解我的痛苦并告诉我我在做什么错?
def correct_guess?(char_clicked, final_word)
puts char_clicked, final_word #p, Spain
puts final_word.is_a?(String) #true
puts "checking if string"
puts final_word.include?(char_clicked) #false
final_word.include?(char_clicked)
end
更新
我得到同样的结果,即使我把字符串转换成一个数组,并检查信
puts final_word.split("").include?(char_clicked)
不过,如果我使用包括在控制台该应用程序,它工作正常
>> s = "brazil"
=> "brazil"
>> s.include?("z")
=> true
看到,因为这个问题证实,包括第一反应呢?应该按照上面显示的方式工作,我提供的更多信息可能有助于解释为什么它不能像预期的那样工作
在发送到correct_guess之前,final_word正在被拉出会话?检查方法。所述char_clicked被拉出参数的
Ajax请求发送char_clicked到上述检查方法
$.ajax({
url: "/check",
type: "POST",
data: {char_clicked: this.get("char_clicked")},
success: function(response) {
console.log(response);
var json = $.parseJSON(response);
if (response.incorrect_guesses >= _this.get("threshold")) _this.set({lost: true});
if (response.win) _this.set({win: true});
_this.trigger("guessCheckedEvent", response);
}
})
},
你能同时打印'char_clicked' variabale? – tdgs
尝试'char_clicked.strip'(去除换行符和其他意外的前导和尾随空白)。 – steenslag
@steenslag它不能解决问题 – BrainLikeADullPencil