加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails 3路由并使用GET创建干净的URL?

发布时间:2020-12-16 21:37:10 所属栏目:百科 来源:网络整理
导读:我刚开始学习语言时,对Rails 3中的路线有点混淆.我在这里生成一个表单: %= form_tag towns_path,:method = "get" do % %= label_tag :name,"Search for:" % %= text_field_tag :name,params[:name] % %= submit_tag "Search" % % end % 然后在我的路线: ge
我刚开始学习语言时,对Rails 3中的路线有点混淆.我在这里生成一个表单:
<%= form_tag towns_path,:method => "get" do %>
    <%= label_tag :name,"Search for:" %>
    <%= text_field_tag :name,params[:name] %>
    <%= submit_tag "Search" %>
  <% end %>

然后在我的路线:

get "towns/autocomplete_town_name"
  get "home/autocomplete_town_name"

  match 'towns' => 'towns#index'
  match 'towns/:name' => 'towns#index'

  resources :towns,:module => "town"
  resources :businesses,:module => "business"

  root :to => "home#index"

那么为什么在提交表单时我会得到这个URL:

/towns?utf8=?&name=townname&commit=Search

所以问题是如何使这个url成为一个干净的网址像:

/towns/townname

谢谢,

安德鲁

解决方法

首先是路线
resources :towns do
  post 'townname',:on => :collection
end

要么

match "town/:name" => "towns#index",:as => :townname,:via => [:post],:constraints => { :name => /[A-Za-z]/ }

和形式

<%= form_tag townname_towns_path,:method => "post" do %>
  <%= label_tag :name,"Search for:" %>
  <%= text_field_tag :name,params[:name] %>
  <%= submit_tag "Search" %>
<% end %>

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读