2013-02-27 134 views
0

这是我的routes.rbRails 3中没有路由匹配(浅路由)

resources :subjects, :shallow => true do 
    resources :skills, :only => [:new, :create] 
end 

resources :skills 

这是我的相关控制器(SkillsController)

def new 
# if action is called by new_subject_skill_path then 
# subject_id is not nil 
    if params[:subject_id] 
    @subject = Subject.find(params[:subject_id]) 
    end 
    @skill = Skill.new 
end 

这是相关的观点:(/人次/subject/show.html.erb)

<%= link_to 'Add new skill', new_subject_skill_path %> 

这是结果,当我运行耙路线

new_subject_skill GET /subjects/:subject_id/skills/new(.:format) skills#new 

然而,当我试图使我得到以下错误

No route matches {:action=>"new", :controller=>"skills"} 

什么我做错了的看法?

干杯:-)

回答

0

只是我想通了 - 我忘了@subject添加到的link_to方法。

<%= link_to 'Add new skill', new_subject_skill_path(@subject) %>