首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在rails应用程序中管理模型所有权时遇到问题

在rails应用程序中管理模型所有权时遇到问题
EN

Stack Overflow用户
提问于 2012-07-07 01:11:05
回答 2查看 127关注 0票数 1

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

在我的课程模型中:

代码语言:javascript
复制
belongs_to :hostable, polymorphic: true
has_one  :syllabus

教学大纲:

代码语言:javascript
复制
belongs_to :course

学校(和用户):

代码语言:javascript
复制
has_many :courses, as: :hostable, :dependent => :destroy

我的路由目前设置如下:

代码语言:javascript
复制
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

在我的教学大纲控制器中,我有:

代码语言:javascript
复制
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

我的课程控制器有这个:

代码语言:javascript
复制
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

我的课程视图页面上有

代码语言:javascript
复制
<%= 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将教学大纲模型嵌套在课程模型下,但我遇到了一些问题。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-07 05:38:44

尝试在你的路线中嵌套教学大纲,

代码语言:javascript
复制
  resources :courses do 
     resource :syllabus
票数 1
EN

Stack Overflow用户

发布于 2012-07-07 02:43:14

代码语言:javascript
复制
  @school = Course.find(params[:school_id])

在我看来很可疑。

应该是吗?

代码语言:javascript
复制
  @school = School.find(params[:school_id])

或者更容易

代码语言:javascript
复制
  @school = @course.school
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11366739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档