参数总是在控制器中没有

时间:2015-12-01 22:59:42

标签: ruby-on-rails ruby ruby-on-rails-4 model-view-controller ruby-on-rails-3.2

我正在尝试获取输入并将其发送到控制器。  但控制器中的参数始终为零

查看(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

1 个答案:

答案 0 :(得分:1)

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

index.html.erb视图中,替换:

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

使用:

<%= text_field_tag :zip_code %>

然后,在控制器操作中使用zip_code获取params[: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