Rails路由问题

时间:2013-12-19 06:03:58

标签: ruby-on-rails ruby ruby-on-rails-3

我是Ruby on Rails的新手,我在学习期间一直在研究一个项目,但我遇到了一个问题。我正在尝试设置从“任务”控制器下的视图到新时间轨迹视图的链接。我试图像这样链接视图:

<%= link_to "New Timetrack", new_project_list_task_timetrack_path(@project, @list, @task) %>

我收到了这个错误:

没有路线匹配{:action =&gt;“new”,:controller =&gt;“timetracks”,:project_id =&gt; nil,:list_id =&gt;#&lt;列表ID:1,名称:“测试”,描述:“测试”,created_at:“2013-12-18 21:00:39”,updated_at:“2013-12-18 21:00:50”,project_id:1 ,默认:nil&gt;,:task_id =&gt;#&gt;任务ID:1,说明:“第一个任务”,已完成:false,list_id:1,created_at:“2013-12-18 21:00:57”,updated_at :“2013-12-18 21:00:57”,默认:nil&gt;}

我确保时间跟踪控制器中有一个“新”动作。我正在创建上面的链接,因为我看到Rails脚手架项目和列表之间的关系是这样的:

<%= link_to "Create To-Do", new_project_list_path(@project) %>

所以我很难过,想要一些帮助。感谢任何信息!

2 个答案:

答案 0 :(得分:0)

尝试使用 new_project_timetrack_path 如果它无能为力,请查看bash命令rake routes的输出并找到您需要的路径。

答案 1 :(得分:0)

你的config / routes.rb中的

必须是这样的行:

resources :projects do    
  resources :lists do    
    resources :tasks do    
      resources :timetracks    
    end
  end
end

然后rake编译路径,如

host:3000/projects/<project_id>/lists/<list_id>/tasks/<task_id>/timetracks/new

我希望这可以帮到你。