0

これは私のroutes.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 %>

これは私がレーキルートを走らせたときの結果です

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 に答える