控制器中的参数始终为零

Params always nil in controller

我正在尝试获取输入并将其发送到控制器。 但是控制器中的参数总是 nil

查看(index.html.erb)

   <%= form_tag(:controller => "zip_code_lookup", :action => 'index') do  %>
     <%= text_field_tag :zip_code, params[:zip_code] %>
     <%= submit_tag("go") %>
 <% end %>

控制器

 class ZipCodeLookupController < ApplicationController
    def index
         render :text => params[:zip_code].inspect
      end
    end

您应该在您的控制器中使用 params[:zip_code],但在您的视图中 NOT

在您的 index.html.erb 视图中,替换:

<%= text_field_tag :zip_code, params[:zip_code] %>

与:

<%= text_field_tag :zip_code %>

然后,在控制器操作中使用 params[:zip_code] 获取 zip_code 值。

因此,您的视图 (index.html.erb)) 变为:

   <%= form_tag(:controller => "zip_code_lookup", :action => 'index') do  %>
     <%= text_field_tag :zip_code %>
     <%= submit_tag("go") %>
  <% end %>

有关 form_tag 工作原理的更多信息,请参阅 this article