在 ruby 中将文本转换为粗体
Transforming text to bold in ruby
我创建了一个简单的游戏,同时拥有控制器和视图。
这是我的功能:
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}**
编写的内容称为 markdown,Ruby 在 Rails 上确实不支持开箱即用。您需要使用像 Redcarpet (https://github.com/vmg/redcarpet) 这样的 Markdown 渲染器,并在您的视图中执行类似的操作。
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
markdown.render(@result)
然而,Markdown 是一种轻量级标记语言,经常用于在线论坛(例如 Whosebug),以便更轻松地编写格式化文本,或者如果用户通常甚至不知道 HTML。
在您的示例中,您也可以只使用 HTML。要使文本加粗,您可以使用 <b>
标签。
@result = "Congratulations! <b>#{@word}</b> is a valid English word!".html_safe
另请注意字符串末尾的 html_safe
,否则 Rails 会在您看来转义该字符串。使用 html_safe
并不理想,我认为您在控制器中的代码属于视图(然后您不再需要 html_safe
。
https://apidock.com/rails/String/html_safe
https://github.com/vmg/redcarpet
我创建了一个简单的游戏,同时拥有控制器和视图。
这是我的功能:
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}**
编写的内容称为 markdown,Ruby 在 Rails 上确实不支持开箱即用。您需要使用像 Redcarpet (https://github.com/vmg/redcarpet) 这样的 Markdown 渲染器,并在您的视图中执行类似的操作。
markdown = Redcarpet::Markdown.new(Redcarpet::Render::HTML, autolink: true, tables: true)
markdown.render(@result)
然而,Markdown 是一种轻量级标记语言,经常用于在线论坛(例如 Whosebug),以便更轻松地编写格式化文本,或者如果用户通常甚至不知道 HTML。
在您的示例中,您也可以只使用 HTML。要使文本加粗,您可以使用 <b>
标签。
@result = "Congratulations! <b>#{@word}</b> is a valid English word!".html_safe
另请注意字符串末尾的 html_safe
,否则 Rails 会在您看来转义该字符串。使用 html_safe
并不理想,我认为您在控制器中的代码属于视图(然后您不再需要 html_safe
。
https://apidock.com/rails/String/html_safe https://github.com/vmg/redcarpet