Ruby on rails Rails:如何将字符串从控制器发送到视图?

Ruby on rails Rails:如何将字符串从控制器发送到视图?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我是rails新手,我希望我的控制器使用从操作创建的变量@msg更新视图中的label/html字段。现在我有 查看表格: <%= form_tag({controller: "home", action: "drawMoney"}) do %> <h1> Draw Out </h1> <%= number_field_tag :draw, min: 1, max:1000 %> <%= date_field_tag :cus

我是rails新手,我希望我的控制器使用从操作创建的变量@msg更新视图中的label/html字段。现在我有

查看表格:

<%= form_tag({controller: "home", action: "drawMoney"}) do %>
<h1> Draw Out </h1>
    <%= number_field_tag :draw, min: 1, max:1000 %>
    <%= date_field_tag :customDate %>
<%= submit_tag "Save" %>
<% end %>

<p>
  <%= "#{@msg}" %>
</p>
<pre>
  <%= @msg %>
</pre>
我读过ruby文档和youtube教程,试着把@msg放在视图中,把@msg放在html中等等。。但这并没有将任何内容打印到视图中,也无法从搜索中真正找到答案。任何帮助都将不胜感激

编辑:

我试着换成,但没用。。 因此,当我单击submit按钮时会调用该方法,在此之前没有@msg实例。这可能是个问题吗?

试试这个:


将此
更改为
您不必在此处插入,当您使用@符号创建控制器实例时,rails视图可以直接访问控制器实例。

当您重定向到索引时,您当前定义的变量将被清除

控制器

<% if flash[:msg] %>
  <div class="message"><%= flash[:msg] %></div>
<% end %>
看法



这是因为您正在重定向。它会丢失所有设置的变量。使用flash作为@imechemi SuggestHanks进行输入!:)@imechemi是正确的,重要的一点。重定向到索引时,现在可以在视图中访问索引中的变量。
flash[:msg] = "Success"
redirect_to action: "index"
<% if flash[:msg] %>
  <div class="message"><%= flash[:msg] %></div>
<% end %>