문제

누군가 내가 가지고있는 몇 가지 문제를 해결할 수 있는지 궁금합니다. 나는 Rails 앱을 만듭니다.

rails myapp -d mysql
cd myapp
haml --rails .
rake db:create:all

그런 다음 MySQL 클라이언트를 사용하여 테이블을 만들고 싶습니다. 사용자와 고객이라고 가정 해 봅시다. 고객은 또한 사용자이므로 다음과 같은 스키마가 있습니다.

users
----------------
id         int, not null, primary key, auto increment
first_name varchar(50) not null
last_name  varchar(50) not null
email      varchar(50) not null unique
password   varchar(50) not null
created_at datetime not null
updated_at datetime not null

customers
----------------
id         int, not null, primary key, auto increment
user_id    int, unique
-- some other stuff that is customer specific

Rails 앱에서 생성되고 완전히 채워진 모델, 뷰 및 컨트롤러를 얻으려면 어떤 Rails 스크립트 명령을 실행해야합니까? 나는 이것을 시도했다 :

ruby script/generate scaffold user
ruby script/generate scaffold customer

파일을 생성하지만 모델은 비어 있습니다.

class User < ActiveRecord::Base
end

거래는 무엇입니까? 또한 물건을 관리하기 위해 관리 섹션을 만들고 싶습니다. 나는 그것들을 위해 경로를 추가해야한다는 것을 알아 냈습니다.

map.namespace :admin do |admin|
  admin.resources :users
  admin.resources :customers
end

관리 섹션을 얻으려면 무엇이 필요합니까? 또한 내가 실행중인 Ruby/Gems의 버전은 다음과 같습니다.

ruby 1.8.6
rails 2.3.5 & 2.3.2 <- I'm using 2.3.2 because haml
  wasn't working (or some other plugin) with 2.3.5
haml 2.2.15
rspec 1.2.9 <- I saw from another thread that I might need
  this when creating an adminstration section (rspec_controller etc)
도움이 되었습니까?

해결책

데이터베이스 스키마가 schema.rb 파일을 사용하고 관리했습니다 마이그레이션.

귀하의 대답에서 나는 당신이 컨트롤러에서 관리에 이르기까지 몇 가지 구성을 작성하고 모든 것을 얻을 수있는 프리 패키지 솔루션을 찾고 있다는 것을 알고 있습니다. 죄송합니다. Rails는이 기능을 제공하지 않습니다. 관리 섹션을 원한다면 실제로 코딩해야합니다.

포함 :

  1. 뷰와 템플릿 생성
  2. 당신의 행동을 만듭니다
  3. 경로 매핑
  4. 시험 작성

스캐 폴드는 출발점 만 제공하지만 이것은 귀하의 요구에 맞게 조정하고 확장 해야하는 출발점입니다.

스캐 폴드가 데이터베이스 테이블에 따라 초기보기를 자동 생성하려면 명령 줄 도구에 인수를 전달할 수 있습니다.

ruby script/generate scaffold user name:string age:integer

그러나 나중에 새로운 필드를 추가하려면 새 마이그레이션을 작성하고 그에 따라보기/작업을 편집해야합니다.

자세한 내용은 레일에서 확인할 수 있습니다 가이드 그리고 위키.

다른 팁

Rails는 데이터베이스 독립성을 위해 설계되었습니다. db/migrate.

적절한 DB 테이블을 만들려면 간단히 실행합니다. rake db:migrate 필요한 DB 테이블을 만들기 위해 모든 마이그레이션이 실행됩니다.

더 많은 정보를위한 좋은 장소는 다음과 같습니다 레일 안내 작업 할 예제 응용 프로그램이 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top