Ruby on rails Rails:如何将字符串从控制器发送到视图?
我是rails新手,我希望我的控制器使用从操作创建的变量@msg更新视图中的label/html字段。现在我有 查看表格: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
<%= 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 %>