使用form_for表单对象进行模糊查询
2018-04-02 本文已影响210人
稻草人_b788
实例代码
<%= form_for User.new, as: :query, method: :get,url: users_path do |f|%>
<%= f.text_field :name, placeholder: "请输入姓名.."%> -
<%= f.text_field :phone, placeholder: "请输入电话.."%> -
<%= f.text_field :id_card, placeholder: "请输入身份证号.."%> -
<%= f.text_field :teacher_type, placeholder: "请输入教师职称.."%>
<%= f.submit '模糊查询' , class: "btn btn-sm btn-info"%>
<%end%>
这里要在form_for中进行new,目的是初始化对象。
form_for需要form表单对象才能向后台传值,因此我们要初始化对象,所以用了User.new
来创建实例,这样f
就可以进入user的内部,然后去对其中的name,phone,id_card,teacher进行赋值等操作
通常我们是在controller中进行实例的创建(或者说是初始化),例如:
@user=User.new
其中@user也可以起其他任何合法的类变量名,如@users,@u等等
然后在form_for中用@user来代替User.new也是可以的,@user或者说User.new的作用只是创建实例(或初始化),让f
起作用,没有什么其他作用
另外,如果不用form_for,也可以用原生的form表单,这样就不用进行实例创建了,因此上述代码也可以写成:
<form action="/users" method="post">
姓名:<input type="text" name="user[name]" >
电话:<input type="text" name="user[phone]">
身份证:<input type="text",name="user[id_card]">
教师职称:<input type="text",name="user[teacher_type]">
<input type="submit" value="模糊查询" %>
</form>