routes.rb中的map.connect没有执行

时间:2011-08-25 02:23:44

标签: ruby-on-rails routes

我不是一个一个地添加团队,而是尝试创建一个表单,一次性输入一串以逗号分隔的团队名称。在我的routes.rb中,我有

map.connect '/teams/massentry', :controller => 'teams', :action => 'massentry'
map.resources :teams

在teams_controller.rb中,我有

def massentry
  @team = Team.new
end

当我完成时,那不是什么样子。我只是把它卡在那里所以会有一些东西。最后,我有/views/teams/massentry.html.erb

<% form_tag({:controller => "teams", :action => "massentry"}, :method => 'get') do %>
  <p>
    <%= label_tag(:t, "CSV List of Teams" %>
    <%= text_area_tag(:t, "", :size => "24x6") %>
  </p>
  <p><%= submit_tag("Submit") %></p>
<% end %>

我不知道这种形式是否正确,显然没有写任何逻辑,但我只是想看看它是什么样的。如果我去

http://localhost:3000/teams/massentry

它返回找不到具有id = massentry的团队。它正在执行show方法,但我想如果我将routes.connect放在routes.rb中的资源行之前它会重定向。使用rails 2.3.8

2 个答案:

答案 0 :(得分:2)

评估Rails路由in the order they appear。因此,您可以按照您刚才描述的方式(首先是您的自定义路线)保留它,或者您可以在RESTful way中使用@ numbers1311407表示。此外,使用:post instead of :get更有意义。

答案 1 :(得分:0)

试试这样:

map.resources :teams, :collection => { :massentry => :get }