繁体   English   中英

在Rails应用中管理模型所有权时遇到问题

[英]Trouble managing model ownership in rails app

在我的rails应用程序中,用户和学校可以创建课程,并且每门课程都有一个教学大纲。

在我的课程模型中:

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的课程模型下,但遇到了一些问题。

尝试在课程安排中嵌套教学大纲,

  resources :courses do 
     resource :syllabus
  @school = Course.find(params[:school_id])

在我看来很可疑。

应该是

  @school = School.find(params[:school_id])

甚至更容易

  @school = @course.school

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM