将值从form_tag传递到控制器然后再查看

时间:2011-12-25 12:59:49

标签: ruby-on-rails-3 webforms instance-variables

我有一个生成器form_tag,我有复选框。我不是将这些记录保存到数据库中,但是我想对它们进行操作,所以我得到了我的“创建”方法:

...
  def create
    @generator = Generator.new(params[:generator])
    @fname = @generator[:fname]
    redirect_to generators_show_path
...

其中'fname'是其中一个复选框;) 而且我有'show'文件:

<p>
  <b>Fname:</b>
    <% if @fname.nil? %>
      fname is nil!
    <% else %>
      fname has a value:D
    <% end %>
</p>

但每次fname都是零!为什么?? :(

1 个答案:

答案 0 :(得分:1)

您似乎在操作@fname中设置create,然后重定向到操作show(呈现视图的位置)。

当重定向发生时,当前请求(作为控制器的实例存在)已完成,并且发出了新请求 - 该请求不与前一个请求共享@fname

因此,如果您想要正确获取@fname的值,则应该在操作中create呈现视图,或者在@fname中设置show