Ruby on Rails generates model field:type - what are the options for field:type?

后端 未结 8 1785
遥遥无期
遥遥无期 2020-12-22 15:42

I\'m trying to generate a new model and forget the syntax for referencing another model\'s ID. I\'d look it up myself, but I haven\'t figured out, among all my Ruby on Rails

相关标签:
8条回答
  • 2020-12-22 16:05

    It's very simple in ROR to create a model that references other.

    rails g model Item name:string description:text product:references

    This code will add 'product_id' column in the Item table

    0 讨论(0)
  • 2020-12-22 16:06

    I had the same issue, but my code was a little bit different.

    def new
     @project = Project.new
    end
    

    And my form looked like this:

    <%= form_for @project do |f| %>
         and so on....
    <% end %>
    

    That was totally correct, so I didn't know how to figure it out.

    Finally, just adding

    url: { projects: :create }
    
    

    after

    <%= form-for @project ...%>
    
    

    worked for me.

    0 讨论(0)
  • 2020-12-22 16:08

    Remember to not capitalize your text when writing this command. For example:

    Do write:

    rails g model product title:string description:text image_url:string price:decimal
    

    Do not write:

    rails g Model product title:string description:text image_url:string price:decimal
    

    At least it was a problem to me.

    0 讨论(0)
  • 2020-12-22 16:11

    There are lots of data types you can mention while creating model, some examples are:

    :primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp, :time, :date, :binary, :boolean, :references
    

    syntax:

    field_type:data_type
    
    0 讨论(0)
  • 2020-12-22 16:23
    :primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
    :time, :date, :binary, :boolean, :references
    

    See the table definitions section.

    0 讨论(0)
  • 2020-12-22 16:24

    To create a model that references another, use the Ruby on Rails model generator:

    $ rails g model wheel car:references
    

    That produces app/models/wheel.rb:

    class Wheel < ActiveRecord::Base
      belongs_to :car
    end
    

    And adds the following migration:

    class CreateWheels < ActiveRecord::Migration
      def self.up
        create_table :wheels do |t|
          t.references :car
    
          t.timestamps
        end
      end
    
      def self.down
        drop_table :wheels
      end
    end
    

    When you run the migration, the following will end up in your db/schema.rb:

    $ rake db:migrate
    
    create_table "wheels", :force => true do |t|
      t.integer  "car_id"
      t.datetime "created_at"
      t.datetime "updated_at"
    end
    

    As for documentation, a starting point for rails generators is Ruby on Rails: A Guide to The Rails Command Line which points you to API Documentation for more about available field types.

    0 讨论(0)
提交回复
热议问题