在ruby on rails上点击搜索按钮后获取文本字段值和搜索结果

时间:2014-04-23 11:45:48

标签: ruby-on-rails

在我的搜索页面中我有一个邮政编码的文本字段,当我在文本字段中输入邮政编码并点击搜索按钮时,文本字段的值是丢失的,搜索结果也是丢失的,我做的是稳定的文本字段值点击搜索按钮后的邮政编码和搜索结果。下面是我的观点页面:

<%= form_for :search, :url => { :method => :get, :action => :search } do |f| %>
<table width="100%">
      <tr>
         <td align="center" style="vertical-align:top;" width="35%">
         <table>
            <tr>
               <td align="center">
                <%= text_field_tag "tf_Zip",nil,:placeholder =>'Zip' %>
               </td>
            </tr>
         </table>
<table>
                    <% if !@user.nil? %>
                        <% @user.each do |uzr| %>
                          <tr>
                              <td bgcolor="#CCDBE0" width="40%">
                            <%= image_tag @user_img.photo.url(:small),:alt => " " %>
                              <br/>
                              <div><a style="color:blue;" href = 'profile?id=<%= uzr.id %>'><%= uzr.First_Name + " " + uzr.Last_Name %></a></div>
                              </td>
                              <td bgcolor="#CCDBE0" width="60%" style="text-align:center;">
                              <div class='buttonblck1'><a href='searchings?id=<%= uzr.id %>'>Send Request </a></div>
                              </td>
                          </tr>
                        <%  end %>
                    <% end %>
</table>
<% end %>

以下是控制器页面

if ( !params[:tf_Zip].blank? or params[:tf_Zip] != "" )
   @user = User.find(:all,:conditions=>['"user_Zip" = ? and "id" != ? ',params[:tf_Zip], current_user.id])
end

请建议我,等待你的回复。&#39; 感谢

1 个答案:

答案 0 :(得分:0)

首先:

form_for旨在与ActiveModelActiveRecord的实例一起使用。
如果要创建不基于对象的表单,请使用form_tag

第二

因为你没有对象,存储属性的地方,你必须自己提供它们 该值在text_field_tag的第二个参数中定义 即在你的控制器中:

@zip_search = params[:tf_Zip].presence
if @zip_search
  @user = ...
end

并在您看来:

<%= form_tag url_for( :controller => :search, :action => :search), :method => :get) do %>
  <%= text_field_tag "tf_Zip", @zip_search, :placholder => 'Zip' %>
<% end %>