私のRailsアプリでは、ユーザーと学校がコースを作成でき、各コースには1つのシラバスがあります。
私のコースモデルでは:
belongs_to :hostable, polymorphic: true
has_one :syllabus
シラバス:
belongs_to :course
学校(およびユーザー):
has_many :courses, as: :hostable, :dependent => :destroy
私のルートは現在次のように設定されています。
resources :users do
resources :courses
member do
get :attending, :memberships
end
end
resources :schools do
resources :courses
member do
put :apply, :enroll
end
end
resources :syllabuses
私のシラバスコントローラーには次のものがあります。
def create
@course = Course.find(params[:id])
@syllabus = @course.build_syllabus(params[:syllabus])
if @syllabus.save
redirect_to @course, notice: 'Syllabus was successfully created.'
end
end
私のコースコントローラーにはこれがあります:
def show
@course = Course.find(params[:id])
@school = Course.find(params[:school_id])
@title = @course.title
unless @course.syllabus
@syllabus = @course.build_syllabus
end
end
私のコースビューページには
<%= form_for (@syllabus) do |f| %>
<div> <%= f.label :syllabus %> </div>
<%= f.label :name %>
<%= f.text_field :name %> </br>
....
<%= f.submit "Save Changes" %>
<% end %>
しかし、学校内のコースページからシラバスを作成しようとすると、次のようになります。
「IDのないコースが見つかりませんでした」
私は何が間違っているのですか?ユーザーと学校の両方がコースを作成し、コース内からシラバスを作成できるように、ルート/モデルを再構成するにはどうすればよいですか?javascriptを使用してコースモデルの下にシラバスモデルをネストしようとしましたが、いくつか問題がありました。