まず基本的な事を整理すると、<%= 値 %>ですよね。
さて、質問で記載された内容では、valが変数だと思いますが、
yesも変数として扱われてしまいます。
もちろん、yesという変数はないでしょうからエラーになっているのでしょう。
ruby
1<%= val == yes ? "正解" : "不正解" %>
シングルクォーテーションまたはダブルクォーテーションで囲まれていない
英単語は変数として扱われますので、
質問で記載された上記のコードでは、valとyesは変数である事が期待されます。
そして、yesが未定義なのでエラーとなっていると推測します。
でも、valの値が'yes'だったらという判定をやりたいのだろうと推測されるので、
'yes'または"yes"と表記するべきと思います。
シングルクォーテーション(')で囲むのか、ダブルクォーテーション(")で囲むのかはどっちでも良いです。
こちらで動作するのではないでしょうか?
動かなかったらすみません。
ruby
1<%= val == 'yes' ? "正解" : "不正解" %>