我有一个应用程序,用户可以在其中构建一个项目,该项目最多可以有12个志愿者时间段,其他用户可以注册参与该项目。
创建项目时,会要求用户提供默认(开始)时间。应将此默认时间(Project_Times模型)写入数据库中begin_time
table.its自己的表中的Projects
,使用project_id参数来标识它所属的项目。
如果用户在创建@project
后需要/需要,最多可以添加11个时段。
我很难让项目创建默认时间。这就是我所拥有的:
++ Projtime(projtime.rb)Model ++
class Projtime < ActiveRecord::Base
attr_accessible :start_time, ...
belongs_to :project
default_scope :order => 'times.amount ASC'
end
++ Project(project.rb)Model ++
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
++ Projects Controller ++
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_to
和has_many
关联,这应该可行。
帮助任何人?
答案 0 :(得分:1)
projtime.rb应以class Projtime
而不是class Projime
开头。
第二组眼睛: - )