私が作成した単純なゲームにはコントローラーとビューの両方があります。
これは私の関数です:
def score
@letters = params[:letters]
@word = params[:word].upcase
if !compsrison?(@word.split(''), @letters.split)
@result = "Sorry, but #{@word} can't be build out of #{@letters}"
elsif !check_api?(@word)
@result = "Sorry, but #{@word} doesn't seem to be valid English word..."
else
@result = "Congratulations! #{@word} is a valid English word!"
end
end
そして結果に対する単純な私の見解:
<div class="result">
<%= @result %>
</div>
params[:word] と params[:letters] を次のような太字のテキストにしたいのですが:1
Ruby で太字テキストの組み込みメソッドが見つからないか、erb ファイルで変更できないようです。
#{@word} を使用してコントローラーに書き込んだものはマークダウンと呼ばれますが、これはそのままでは Ruby on Rails でサポートされていません。 Redcarpet (https://github.com/vmg/redcarpet) のような Markdown レンダラーを使用し、ビューで次のようなことを行う必要があります。
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
markdown.render(@result)
ただし、Markdown は軽量のマークアップ言語であり、書式設定されたテキストを簡単に記述できるようにするため、またはユーザーが通常 HTML を知らない場合に、オンライン フォーラム (Stackoverflow など) でよく使用されます。
この例では、HTML だけを使用することもできます。テキストを太字にするには、 タグを使用します。
@result = "Congratulations! <b>#{@word}</b> is a valid English word!".html_safe
文字列の最後にある html_safe にも注意してください。そうしないと、Rails がビュー内でこの文字列をエスケープします。 html_safe を使用するのは理想的ではありません。コントローラー内のコードはビューに属していると私は主張します (その場合、html_safe はもう必要ありません。
https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://apidock.com/rails/String/html_safe https://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://github.com/vmg/redcarpet