以下是“用户”模型的架构
id | First_Name | Zip
1 | abc | 10005
2 | xyz | 10005
3 | mno | 10005
4 | ijk | 10006
我有一个text_field,我输入邮政编码,如下:
<%= form_for :search, :url => { :action => :search} do |f| %>
<table>
<tr>
<td align="center">
<h2 style="color:Black; font-size: x-large;">Specs</h2>
<table>
<tr>
<td align="center">
<%= f.text_field :tf_Zip,placeholder: "Zip" %>
</td>
</tr>
</table>
<table>
<tr>
<td>
<div class="button">
<%= f.submit "Search", { :class => "buttonSearch"} %>
</div>
</td>
</tr>
</table>
</td>
</tr>
</table>
<% end %>
我希望得到所有“Zip == 10005”的用户,我使用下面的代码:
def search
if ( !params[:search][:tf_Zip].blank? or params[:search][:tf_Zip] !="" )
@user_zip = User.where(user_Zip: params[:search][:tf_zip])
end
render 'search'
end
但它不能正常工作,请帮忙。感谢
答案 0 :(得分:0)
您需要使用.where
:
def search
if ( !params[:tf_Zip].blank? or params[:tf_Zip] !="" )
@user_zip = User.where(zip: params[:tf_zip])
end
render 'search'
end
答案 1 :(得分:0)
尝试使用以下代码。
def search
@user_zip = params[:search][:tf_Zip].blank? ? [] : User.where(zip: params[:search][:tf_Zip])
render 'search'
end
答案 2 :(得分:0)
尝试:
def search
@user_zip = User.where(zip: params[:tf_Zip]) if params[:tf_Zip].any?
end
您必须检查params
个参数。我不确定它是params[:search][:tf_Zip]
但你应该在应用程序中重新检查并写正确。