그래서 세 가지 모델, Project
, Entry
및 User
을 만들려고합니다. A Project
에는 Entries
이 많이 있고 a에는 많은 Entries
가 있습니다. 나는 다음과 같은 명령으로 위의 세 가지 모델을 스캐 폴딩 : 나는 아마 완전히 내가 수동으로 Entry
모델에서 다른 테이블의 외래 키에 넣어 부분을 놓 쳤어 실현레일 : 데이터베이스 관계를 이해하는 데 문제가 있습니다
rails g scaffold Project title:string
rails g scaffold Entry project:project_id entry_for:user_id created_by:userid \
date:string start_time:string end_time:string total:string type_of_work:string \
on_off_site:string phase:string description:text
rails g scaffold User name:string
. 나도 모르겠다. has_many
belongs_to
키의 측면에서 다른 모델 간의 관계를 자동화하므로 외래 키 필드를 수동으로 추가하려고 시도했다. 잘못인가? 내가 외래 키 필드를 모두 제거하려하지만, 위의 오류를 가지고 여기
undefined method `user_id' for #<ActiveRecord::ConnectionAdapters::TableDefinition:0x007fc1bdf37970>
, 내 마이그레이션은 다음과 같습니다
나는 다음과 같은 오류가 db:migrate
를 실행하려고
class CreateProjects < ActiveRecord::Migration
def change
create_table :projects do |t|
t.string :name
t.timestamps
end
end
end
class CreateEntries < ActiveRecord::Migration
def change
create_table :entries do |t|
t.string :project
t.string :project_id
t.user_id :entry_for
t.user_id :created_by
t.string :date
t.string :start_time
t.string :end_time
t.string :total
t.string :type_of_work
t.string :on_off_site
t.string :phase
t.text :description
t.timestamps
end
end
end
class CreateUsers < ActiveRecord::Migration
def change
create_table :users do |t|
t.string :name
t.timestamps
end
end
end
class RemoveColumns < ActiveRecord::Migration
def self.up
remove_column :entries, :created_by
remove_column :entries, :entry_for
remove_column :entries, :project_id
end
def self.down
add_column :entries, :created_by, :user_id
add_column :entries, :entry_for , :user_id
add_column :entries, :project_id, :string
end
end
감사합니다.