【发布时间】:2013-01-04 15:56:48
【问题描述】:
在 Rails 3.2.8 站点中,我收到以下错误:
Routing Error
No route matches {:controller=>"tasks", :action=>"complete", :list_id=>1, :id=>nil}
在我的路线文件中,我有以下内容:
resources :lists do
resources :tasks
end
match 'lists/:list_id/tasks/:id/complete' => 'tasks#complete', :as => :complete_task
在视图中:
<% @list.tasks.each do |task| %>
<li><%= task.description %> - <%= button_to "Complete",
complete_task_path(@list.id, task.id) %></li>
<% end %>
在做 rake 路由时:
complete_task /lists/:list_id/tasks/:id/complete(.:format) tasks#complete
【问题讨论】:
-
你的id是nil,这样会导致路由错误。
-
你为什么不在
resources :tasks中使用get "complete" -
为什么id是零?在控制台中,我的所有任务都显示一个 id。
标签: ruby-on-rails ruby-on-rails-3 routes ruby-on-rails-3.2 custom-routes