2012-08-12 7 views
34

Estoy tratando de seguir las instrucciones del libro "Head First Rails" y en la página 50 dice crear un modelo pero no puedo crear un modelo usando el comando rails.carriles generan modelo

Cuando escribo esto en este indicador: localhost: ~ $ hogar

rails generate model ad name:string description:text price:decimal seller_id:integer email:string img_url:string 

me sale esto:

Usage: 
    rails new APP_PATH [options] 

Options: 
    -r, [--ruby=PATH]    # Path to the Ruby binary of your choice 
           # Default: /Users/home/.rvm/rubies/ruby-1.9.3-p125/bin/ruby 
    -b, [--builder=BUILDER]  # Path to a application builder (can be a filesystem path or URL) 
    -m, [--template=TEMPLATE]  # Path to an application template (can be a filesystem path or URL) 
     [--skip-gemfile]   # Don't create a Gemfile 
     [--skip-bundle]   # Don't run bundle install 
    -G, [--skip-git]    # Skip Git ignores and keeps 
    -O, [--skip-active-record]  # Skip Active Record files 
    -S, [--skip-sprockets]   # Skip Sprockets files 
    -d, [--database=DATABASE]  # Preconfigure for selected database (options: mysql/oracle/postgresql/sqlite3/frontbase/ibm_db/sqlserver/jdbcmysql/jdbcsqlite3/jdbcpostgresql/jdbc) 
           # Default: sqlite3 
    -j, [--javascript=JAVASCRIPT] # Preconfigure for selected JavaScript library 
           # Default: jquery 
    -J, [--skip-javascript]  # Skip JavaScript files 
     [--dev]     # Setup the application with Gemfile pointing to your Rails checkout 
     [--edge]     # Setup the application with Gemfile pointing to Rails repository 
    -T, [--skip-test-unit]   # Skip Test::Unit files 
     [--old-style-hash]   # Force using old style hash (:foo => 'bar') on Ruby >= 1.9 

Runtime options: 
    -f, [--force] # Overwrite files that already exist 
    -p, [--pretend] # Run but do not make any changes 
    -q, [--quiet] # Suppress status output 
    -s, [--skip]  # Skip files that already exist 

Rails options: 
    -h, [--help]  # Show this help message and quit 
    -v, [--version] # Show Rails version number and quit 

Description: 
    The 'rails new' command creates a new Rails application with a default 
    directory structure and configuration at the path you specify. 

    You can specify extra command-line arguments to be used every time 
    'rails new' runs in the .railsrc configuration file in your home directory. 

    Note that the arguments specified in the .railsrc file don't affect the 
    defaults values shown above in this help message. 

Example: 
    rails new ~/Code/Ruby/weblog 

    This generates a skeletal Rails installation in ~/Code/Ruby/weblog. 
    See the README in the newly created application to get going. 
localhost:~ home$ 

estoy utilizando rieles -v 3.2.8 y Ruby 1.9.3p125

+0

¿Usted hizo un cd en su directorio de proyectos de rieles? – PeterWong

+0

Creo que ese puede ser el problema. No tengo un dir de proyecto El libro está escrito para la versión 2.1 de los rieles. En este tutorial debía crear un directorio usando 'rails mebay', pero ese comando no funciona en Rails 3.2.8. Se supone que no debo usar 'rails new mebay' porque se supone que debo crear manualmente los modelos y los controladores. Creo que falta un paso en el libro. – Livi17

Respuesta

63

El código está bien pero está en el directorio incorrecto. Debe ejecutar estos comandos dentro de su directorio de proyectos de rieles.

La manera normal para llegar allí desde el principio es:

$ rails new PROJECT_NAME 
$ cd PROJECT_NAME 
$ rails generate model ad \ 
    name:string \ 
    description:text \ 
    price:decimal \ 
    seller_id:integer \ 
    email:string img_url:string 
+1

. Esta lección fue diseñada para mostrarle cómo crear modelos y controladores manualmente. Dice que usar "rails new mebay" crea una aplicación de scaffolded, pero una aplicación de scaffolded proporciona más de lo que necesitamos. Entonces, se supone que debemos crear manualmente el modelo primero usando "rails generate model ad blah: string". Excepto que no nos dice cómo crear el directorio de la aplicación primero. Creo que falta un paso en el libro. – Livi17

+0

Voy a intentar su sugerencia arriba – Livi17

+0

El comando 'rails new mebay' no genera una aplicación de andamio. Solo produce el skaleton de una aplicación de rieles. Sin eso, no puedes comenzar a escribir tu aplicación. –

2

Es necesario crear nueva aplicación rieles primero. Ejecutar

rails new mebay 
cd mebay 
bundle install 
rails generate model ... 

y tratar de encontrar los carriles 3 tutorial, hay una gran cantidad de cambios desde la versión 2.1 Guías (http://guides.rubyonrails.org/getting_started.html) son buen punto de inicio.

1

Para mí lo que pasó fue que me genera la aplicación con nuevos carriles rieles nueva Capítulo_2 pero el RVM --default tenía rieles 4.0.2 joya, pero mi proyecto Capítulo_2 utilice una nueva gemset con rieles 3.2.16.

Así que cuando me encontré

rails generate scaffold User name:string email:string 

la consola mostró

Usage: 
    rails new APP_PATH [options] 

Así que fija el RVM y el gemset con los rieles 3.2.16 joya, y luego genera la aplicación de nuevo entonces ejecutado

rails generate scaffold User name:string email:string 

y funcionó

7

El error muestra que o no creó el proyecto de los carriles o que no está en el directorio del proyecto de los rieles.

Supongamos que está trabajando en el proyecto myapp. Tienes que moverte a ese directorio de proyecto en tu línea de comando y luego generar el modelo. Aquí hay algunos pasos a los que puede referirse.

Ejemplo: Suponiendo que no creó la aplicación Rails aún:

$> rails new myapp 
$> cd myapp 

Ahora generar el modelo de su línea de comandos.

$> rails generate model your_model_name 
Cuestiones relacionadas