【发布时间】:2013-03-05 18:38:35
【问题描述】:
我正在尝试在 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 %>
<%= submit_tag "Search", name: nil %>
<% end %>
我正在使用脚手架生成的标准控制器“show”方法:
# GET /students/1
# GET /students/1.json
def show
@student = student_scope.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.json { render json: @student }
end
end
我将不胜感激有关表单 url/post 方法/其他路由组合的任何建议,以使其正常工作。这是您通常使用 Rails 的方式,还是应该设置一个新的控制器方法来处理提交的表单?
提前致谢
【问题讨论】:
-
你能解释一下它是如何使用自动完成来填充你的用户 ID 的吗?
-
@Zippie 我在选择项目时使用 javascript 更新隐藏字段。 student.js.coffee :
$('#search_student_name #search_name').autocomplete minLength: 3, source: "/students/search_name_suggestions", select: (event, ui) -> $("#search_student_name #id").val ui.item.value # update what is displayed in the textbox @value = ui.item.label $('#search_student_name').submit() false
标签: ruby-on-rails search controller