简体   繁体   English

rails生成模型

[英]rails generate model

I'm trying to follow instructions from the book "Head First Rails" and on page 50 it says to create a model but I am unable to create a model using the rails command. 我试图按照“Head First Rails”一书中的说明进行操作,并在第50页说它创建了一个模型,但我无法使用rails命令创建模型。

When I type this at this prompt: localhost:~ home$ 当我在此提示符下输入:localhost:~home $

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

I get this: 我明白了:

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$ 

I am using Rails -v 3.2.8 and Ruby 1.9.3p125 我正在使用Rails -v 3.2.8和Ruby 1.9.3p125

The code is okay but you are in the wrong directory. 代码没问题,但你在错误的目录中。 You must run these commands inside your rails project-directory. 您必须在rails project-directory中运行这些命令。

The normal way to get there from scratch is: 从头开始的正常方法是:

$ 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

The error shows you either didn't create the rails project yet or you're not in the rails project directory. 该错误显示您尚未创建rails项目,或者您不在rails项目目录中。

Suppose if you're working on myapp project. 假设您正在开发myapp项目。 You've to move to that project directory on your command line and then generate the model. 您将在命令行上移动到该项目目录,然后生成模型。 Here are some steps you can refer. 以下是您可以参考的一些步骤。

Example: Assuming you didn't create the Rails app yet: 示例:假设您尚未创建Rails应用程序:

$> rails new myapp
$> cd myapp

Now generate the model from your commandline. 现在从命令行生成模型。

$> rails generate model your_model_name 

You need to create new rails application first. 您需要先创建新的rails应用程序。 Run

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

And try to find Rails 3 tutorial, there are a lot of changes since 2.1 Guides ( http://guides.rubyonrails.org/getting_started.html ) are good start point. 并尝试找到Rails 3教程,自2.1指南( http://guides.rubyonrails.org/getting_started.html )以来有很多变化是很好的起点。

For me what happened was that I generated the app with rails new rails new chapter_2 but the RVM --default had rails 4.0.2 gem, but my chapter_2 project use a new gemset with rails 3.2.16. 对我来说,发生的事情是我使用rails new rails new chapter_2生成应用程序,但是RVM --default有rails 4.0.2 gem,但是我的chapter_2项目使用了带有rails 3.2.16的新gemset。

So when I ran 所以,当我跑

rails generate scaffold User name:string email:string

the console showed 控制台显示

Usage:
   rails new APP_PATH [options]

So I fixed the RVM and the gemset with the rails 3.2.16 gem , and then generated the app again then I executed 所以我用rails 3.2.16 gem修复了RVM和gemset,然后再次生成应用程序然后我执行了

 rails generate scaffold User name:string email:string

and it worked 它起作用了

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM