【问题标题】:can't convert nil into String无法将 nil 转换为字符串
【发布时间】:2012-02-09 18:09:14
【问题描述】:

我不了解 Ruby,但我的应用程序遇到了这个问题。有人可以帮助我吗?

第 7 行的 ActionView::TemplateError (can't convert nil into String)

4:  <h3><span><%= opinion.opinion %></span>: <%= opinion.keywords.sort.join(' / ').upcase %> </h3>
5:  <div class="original">Estado original: <span class="pos"><%= opinion.opinion %></span></div>
6:  <%#= highlight(simple_format(highlight_ontology(opinion)), opinion.keywords, :highlighter => '<em>\1</em>') %>
7:  <%= simple_format(highlight_ontology(opinion)) %>
8:  <%= button_to_remote('POSITIVO', {:url => url_for(opinion), :method => :put, :with => '"opinion[opinion]=POSITIVE"' }, :class => :positive) %>
9:  <%= button_to_remote('OBJETIVO', {:url => url_for(opinion), :method => :put, :with => '"opinion[opinion]=OBJECTIVE"' }, :class => :objective) %>
10: <%= button_to_remote('NEGATIVO', {:url => url_for(opinion), :method => :put, :with => '"opinion[opinion]=NEGATIVE"' }, :class => :negative) %>

谢谢!

【问题讨论】:

    标签: ruby string null


    【解决方案1】:

    使用(variable || "") 而不仅仅是变量应该使其默认为空字符串。

    这种技术称为 null(或 nil)合并。

    【讨论】:

    • 根据变量的来源,您可能已经希望在视图中使用它之前默认为“”。在您的情况下,这可能会在 highlight_ontology 中。
    • 查询:错误是“can't convert nil into String.”如何/为什么可以将相同的变量强制为字符串?
    • @adamwong246 我会提出相反的问题。既然NilClass定义了to_s,为什么不能转换成字符串呢?答案是因为它没有定义to_str。这就是“#{nil}”有效而“#{''+nil}”导致上述错误的原因
    • 点赞variable.to_s "abc".to_s 得到"abc"nil.to_s 得到""
    猜你喜欢
    • 1970-01-01
    • 2013-04-17
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多