我不是一个一个地添加团队,而是尝试创建一个表单,一次性输入一串以逗号分隔的团队名称。在我的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
答案 0 :(得分:2)
评估Rails路由in the order they appear。因此,您可以按照您刚才描述的方式(首先是您的自定义路线)保留它,或者您可以在RESTful way中使用@ numbers1311407表示。此外,使用:post instead of :get更有意义。
答案 1 :(得分:0)
试试这样:
map.resources :teams, :collection => { :massentry => :get }