0

这是我的路线.rb

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

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

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

这是我运行rake 路线时的结果

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

然而,当我尝试渲染视图时,出现以下错误

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

我究竟做错了什么?

干杯:-)

4

1 回答 1

0

我刚刚想通了 - 我忘记将 @subject 添加到 link_to 方法。

<%= link_to 'Add new skill', new_subject_skill_path(@subject) %>
于 2013-02-27T19:15:53.030 回答