我有以下表格:
<form action="<%= jobs_path %>" method="get" >
<%= label_tag 'l', "I'm looking for a job in"%>
<%= select_tag 'l',
options_for_select(Job.areas.keys.map {|area| area.humanize.titlecase}, :selected => params[:l]),
include_blank: "All Cities"
%>
and I'm interested in
<%= text_field_tag 'q', nil, :placeholder => "Major or Interest...", :value => params[:q] || "" , :class =>"query" %>
<%= submit_tag "Find Jobs", :name => nil, :class => "cta"%>
</form>
提交时,此表单目前会创建类似http://localhost:3000/jobs?l=Boston&q=assistant
的链接。
但是,我希望链接输出如下:
http://localhost:3000/jobs/l-Boston-q-assistant
现在,我的routes.rb
看起来像这样:
get "jobs/l-:l-q-:q", to: "jobs#index"
get "jobs/l-:l", to: "jobs#index"
get "jobs/q-:q", to: "jobs#index"
resources :jobs
这使得像http://localhost:3000/jobs/l-Boston-q-assistant
这样的链接可以正确查询,但是如果人们在页面上使用搜索表单,它会创建链接的查询参数版本。
如何制作,以便使用表单创建的搜索生成http://localhost:3000/jobs/l-Boston-q-assistant
?
答案 0 :(得分:0)
你可能想要onsubmit函数构建字符串l-Boston-q-assistant来自提交的表单元素并且有路由
获取'jobs /:params',至:'photos#show',params:/ [a-zA-Z - ] * /
然后将位置设置为作业/生成的字符串
然后在控制器上你可以将参数分成相应的值