Ruby on rails Rails搜索表单提交显示方法
我正在尝试在Rails视图中设置一个表单,以便将id提交回控制器中的show方法。“我的表单”使用“自动完成”设置隐藏的id字段:Ruby on rails Rails搜索表单提交显示方法,ruby-on-rails,search,controller,Ruby On Rails,Search,Controller,我正在尝试在Rails视图中设置一个表单,以便将id提交回控制器中的show方法。“我的表单”使用“自动完成”设置隐藏的id字段: <%= form_tag students_path, id: 'search_student_name', method: :get do %> <%= text_field_tag :search_name, '', size: 30 %> <%= hidden_field_tag :id %> <%= su
<%= form_tag students_path, id: 'search_student_name', method: :get do %>
<%= text_field_tag :search_name, '', size: 30 %>
<%= hidden_field_tag :id %>
<%= submit_tag "Search", name: nil %>
<% end %>
如果您能就如何结合表单url/post方法/其他路径来实现这一点提供建议,我将不胜感激。这是Rails通常使用的方法,还是我应该设置一个新的控制器方法来处理提交的表单
提前感谢因为这不完全是一场Restful秀,所以您应该创建一个新动作,搜索
#routes.rb
post 'search' => 'students#search'
#student_controller.rb
def search
@student = Student.find_by_name params[:search_name]
render action: 'show'
end
据我所知,表单不需要发送:id
<%= form_tag search_path, method: :get do %>
<%= input_tag :search_name, type: 'text' %>
<%= submit_tag "Search" %>
<% end %>
你能解释一下它是如何使用autocomplete来填充你的用户id的吗?@Zippie我正在用javascript更新隐藏字段以选择项目。students.js.coffee:$(“#搜索#学生名#搜索#名称”).autocomplete minLength:3,来源:“/students/search(名称)建议”,选择:(事件,用户界面)->$(“#搜索#学生名#id”).val ui.item.value#更新文本框@value=ui.item.label$(搜索#学生名#).submit()false
谢谢@cmaitchison,现在可以了。我使用:id是因为名称实际上是first_name和last_name,我可以用autocomplete填充:id字段。我认为这将简化搜索查询,只返回一个值(在名称重复的情况下)。再次感谢,没问题。很乐意帮忙。您知道吗?在rails3中,您可以将每个问题的一个答案标记为:post'search',:to=>studnets\search'
<%= form_tag search_path, method: :get do %>
<%= input_tag :search_name, type: 'text' %>
<%= submit_tag "Search" %>
<% end %>