Возникли проблемы с началом работы с Ruby on Rails - PullRequest
1 голос
/ 05 декабря 2009

Мне интересно, может ли кто-нибудь решить некоторые из моих проблем? Я создаю приложение 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)

Ответы [ 2 ]

3 голосов
/ 05 декабря 2009

Модели по умолчанию должны быть пустыми, поскольку схема базы данных сохраняется в файле schema.rb и управляется с помощью migrations .

Из вашего ответа я понимаю, что вы ищете решение для предварительной упаковки, чтобы написать пару конфигураций и получить все, от контроллера до администрации, приготовленной для вас. Извините, Rails не предлагает вам эту функцию. Если вы хотите раздел администрирования, вам действительно нужно его кодировать.

Включает в себя:

  1. создание ваших представлений и шаблонов
  2. создание ваших действий
  3. отображение ваших маршрутов
  4. написание ваших тестов

Эшафот дает вам только отправную точку, но это отправная точка, которую вы должны адаптировать и расширить для своих нужд.

Если вы хотите, чтобы каркас автоматически генерировал ваши начальные представления в соответствии с таблицей вашей базы данных, вы можете передать аргументы инструменту командной строки

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

Но если вы хотите добавить новое поле позже, вам придется написать новую миграцию и соответственно отредактировать свои представления / действия.

Более подробная информация доступна в Rails Руководства и Wiki .

0 голосов
/ 05 декабря 2009

Rails разработан для независимости от базы данных, и все «создание» выполняется с помощью миграций, расположенных в db/migrate.

Для создания соответствующих таблиц БД вы просто запускаете rake db:migrate, и любые миграции будут выполняться для создания необходимых таблиц БД.

Хорошее место для получения дополнительной информации - Rails Guides , в котором есть пример приложения для работы.

...