3

キュウリ経由でブラウザ データをテストしています。どのリンクをクリックする必要があるかを判断するために、ページ上のリンクのリストを調べています。

たとえば、デザートのリンクのリストがあり、アップル ソースのリンクを見つけたいとします。リンクを通過するメソッドを呼び出して、アップル ソースという名前を渡した後、アップル ソースを含むものを見つけます。

文字列「アップル ソース」は @dessert に格納されます。@dessert は頻繁に変更されるため、「アップル ソース」が変数 @dessert に格納されているかどうかを確認する方法があるかどうかを知る必要があります。

@dessert.text.include を実行すると? 「#@dessert」私は偽り続けます。クリックするかどうかを決定するには、これが真実である必要があります。@dessert 自体を評価すると、「アップルソース」があります...

評価されないように引用符 ( " ) を取り除くにはどうすればよいですか? これは私を台無しにしていると思います!

4

3 に答える 3

1

文字列に別の文字列が含まれているかどうかをテストする標準的な方法は、「十分に近い」一致のパターンを記述できる正規表現を使用するか、リテラル部分文字列を検索することです。

@dessert = "apple sauce;pears;walnuts"
@dessert.include?("apple sauce")
# => true

"#@dessert"それがまさにそのような文字列に評価されるので、なぜあなたの質問が持っているのかわかりません。"#{@dessert}"おそらく、文字列値をインライン化する意図したものですが、#{...}他のデータを持たない特異な変数に対してのみテストしているため、冗長です。が文字列である場合、同等の文字列として評価されxます。"#{x}"x

于 2013-05-16T02:40:05.727 に答える
0

オブジェクトである @dessert と、そのオブジェクトの属性である @dessert.text を比較しているようです。また、ここにいる他の人たちと一緒に避けることをお勧めする文字列補間の形式を使用しています。

試す

@dessert.text.include? "#{@dessert.text}"

true が返されるかどうかを確認します。

于 2013-05-16T05:14:12.563 に答える