【问题标题】:Strings passed from controller to view in Rails arrive empty从控制器传递到 Rails 中的视图的字符串到达​​空
【发布时间】:2015-05-15 22:23:58
【问题描述】:

我正在尝试将字符串从控制器传递给我的视图,如下所示:

控制器:

def index
    @str = 'foo'
end

查看:

String: <% @str %>

变量本身似乎已经到达,因为我没有收到错误。但是,它是空的(只有“字符串”在 html 中,没有别的)。它似乎适用于其他内置类型,例如时间。我在这里想念什么?我使用 Ruby 2.2.1 和 Rails 4。

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    正如其他人所说,您需要使用

    <%= @str %>
    

    我也会给你一个解释——当你需要运行一些不想显示在屏幕上的 Ruby 代码时,你可以使用&lt;% %&gt;。例如,您可能有像

    这样的条件逻辑
    <% if user_signed_in? %>
        <%= @welcome_string %>
    <% end %>
    

    当您想要输出时使用&lt;%= %&gt;,删除条件逻辑或不需要显示的任何内容的“=”。

    【讨论】:

      【解决方案2】:

      在你看来

      String: &lt;%= @str %&gt;

      【讨论】:

        【解决方案3】:

        查看用户以下代码:

        String: <%= @str %>
        

        【讨论】:

          【解决方案4】:

          在您看来,使用:

          <%= @str %>
          

          【讨论】:

            【解决方案5】:

            正如其他用户指出的,您需要使用&lt;%=

            = 是一个 ERB 标志,用于导出标签内代码的结果并将其放入 DOM。

            如果您想在页面中添加一些您不想评估的逻辑,请将= 排除在外。

            <% if user_wants_to_see_output? %>
                <%= "User will see this" %>
            <% end %>
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2017-02-21
              • 2019-11-27
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多