私は、ユーザーがプロジェクトを構築できるアプリを持っています。このアプリには、他のユーザーがプロジェクトに取り組むためにサインアップできる最大12のボランティアタイムスロットがあります。
プロジェクトが作成されると、ユーザーはデフォルト(開始)時間を求められます。このデフォルトの時刻(Project_Timesモデル)は、project_idパラメーターを使用して、それが属するプロジェクトを識別するために、データベース内begin_time
のtable.its独自のテーブルに書き込む必要があります。Projects
ユーザーは、作成後に必要な場合、最大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_to
とhas_many
、これは機能するはずです。
誰かを助けますか?