0

我有一个应用程序,用户可以在其中构建一个项目,该项目最多有 12 个志愿者时间段,其他用户可以注册参与该项目。

创建项目时,系统会要求用户提供默认(开始)时间。这个默认时间(Project_Times模型)应该写入到数据库begin_timeProjects自己的表中,使用project_id参数来标识它属于哪个项目。

然后,用户可以在创建后添加多达 11 个时间段,如果他们想要/需要的话@project

我很难让项目创建默认时间。这就是我所拥有的:

++ Projtime (projtime.rb) 模型 ++

class Projtime < ActiveRecord::Base
  attr_accessible :start_time, ...
  belongs_to :project
  default_scope :order => 'times.amount ASC'
end

++ 项目 (project.rb) 模型 ++

class Project < ActiveRecord::Base
  attr_accessible :title
  belongs_to :user
  has_one :project_category
  has_many :projtimes, :dependent => :destroy
    accepts_nested_attributes_for :projtimes

  def projtimes
    Projtimes.where('project_id=?', id)
  end
end

++ 项目控制器 ++

class ProjectsController < ApplicationController
  ...
  def create
    @user = current_user
    @project = current_user.build_project(params[:project])
    @project.save
    @render 'edit'
  end

其中项目使用上述语法自动分配给用户。我试图复制相同的概念(考虑到每个项目有多次的事实)并为ProjtimesController

class ProjtimesController < ApplicationController
  ...
  def create
    @project.projtimes.build
  end
end

但是,我得到一个NameError in ProjectsController#new

uninitialized constant Project::Projtimes

我认为通过设置belongs_tohas_many关联,这应该可行。

帮助任何人?

4

1 回答 1

1

projtime.rb 应该以class Projtimenot开头class Projime

第二双眼睛:-)

于 2013-02-14T02:01:48.670 回答