Ruby on Rails를 시작하는 데 어려움이 있습니다
-
13-09-2019 - |
문제
누군가 내가 가지고있는 몇 가지 문제를 해결할 수 있는지 궁금합니다. 나는 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는이 기능을 제공하지 않습니다. 관리 섹션을 원한다면 실제로 코딩해야합니다.
포함 :
- 뷰와 템플릿 생성
- 당신의 행동을 만듭니다
- 경로 매핑
- 시험 작성
스캐 폴드는 출발점 만 제공하지만 이것은 귀하의 요구에 맞게 조정하고 확장 해야하는 출발점입니다.
스캐 폴드가 데이터베이스 테이블에 따라 초기보기를 자동 생성하려면 명령 줄 도구에 인수를 전달할 수 있습니다.
ruby script/generate scaffold user name:string age:integer
그러나 나중에 새로운 필드를 추가하려면 새 마이그레이션을 작성하고 그에 따라보기/작업을 편집해야합니다.
다른 팁
Rails는 데이터베이스 독립성을 위해 설계되었습니다. db/migrate
.
적절한 DB 테이블을 만들려면 간단히 실행합니다. rake db:migrate
필요한 DB 테이블을 만들기 위해 모든 마이그레이션이 실행됩니다.
더 많은 정보를위한 좋은 장소는 다음과 같습니다 레일 안내 작업 할 예제 응용 프로그램이 있습니다.