2012-08-12 164 views
34

我試圖按照「Head First Rails」和第50頁上的說明創建模型,但我無法使用rails命令創建模型。rails生成模型

當我在此提示符下鍵入:本地主機:〜$家

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

我得到這個:

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$ 

我用Rails 3.2.8 -v和 紅寶石1.9.3p125

+0

你有沒有cd到你的rails項目目錄? – PeterWong 2012-08-12 18:10:36

+0

我認爲這可能是問題所在。我沒有項目目錄。本書是爲rails 2.1編寫的在本教程中,我使用'rails mebay'創建目錄,但該命令在Rails 3.2.8中不起作用。我不應該使用'rails new mebay',因爲我應該手動創建模型和控制器。我認爲這本書缺少一個步驟。 – Livi17 2012-08-12 18:26:21

回答

63

代碼是好的,但你在錯誤的目錄中。您必須在rails項目目錄中運行這些命令。

方式,一般從頭那裏是:

$ 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

查看本課程旨在向您展示如何手動創建模型和控制器。它說使用「​​rails new mebay」創建了一個腳手架應用程序,但腳手架應用程序提供了比我們需要的更多。所以我們應該首先使用「rails generate model ad blah:string」手動創建模型。除了它沒有告訴我們如何首先創建應用程序目錄。我認爲這本書缺少一個步驟。 – Livi17 2012-08-12 18:33:29

+0

我會嘗試上面的建議 – Livi17 2012-08-12 18:34:26

+0

命令'rails new mebay'不會生成腳手架應用程序。它只生成rails-app的skaleton。沒有這些,你就無法開始編寫你的應用程序。 – 2012-08-12 18:35:14

1

對我發生了什麼事,我產生與軌道的新軌道新chapter_2 但RVM --default有軌4.0.2寶石的應用程序,但我chapter_2項目中使用了新的 寶石與軌道3.2.16。

所以,當我跑

rails generate scaffold User name:string email:string 

控制檯顯示

Usage: 
    rails new APP_PATH [options] 

所以我固定RVM並與軌道3.2.16寶石的寶石,然後生成應用程序再次 後來我執行

rails generate scaffold User name:string email:string 

和它的工作

7

錯誤顯示您要麼沒有創建rails項目,要麼你不在rails項目目錄中。

假設您正在開發myapp項目。您必須在命令行上移至該項目目錄,然後生成模型。以下是您可以參考的一些步驟。

例子:假設你沒有創建Rails應用程序尚未:

​​

現在生成您的命令行模式。

$> rails generate model your_model_name