Ruby on Rails генерирует поле модели: type-каковы параметры поля: type?

Я пытаюсь создать новую модель и забыть синтаксис для ссылки на идентификатор другой модели. Я бы сам посмотрел, но я не понял, среди всех моих ссылок документации Ruby on Rails, как найти окончательный источник.

$ rails g model Item name:string description:text (а тут либо reference:product или references:product). Но лучший вопрос здесь или как Я могу смотреть на такого рода глупости в будущем?

Примечание: я узнал на собственном горьком опыте, что если я введите один из этих параметров и выполнить мою миграции тогда Ruby on Rails полностью испортит мою базу данных... и rake db:rollback бессильна против таких ошибок. Я уверен, что просто не понимаю чего-то, но пока не пойму... "подробная" информация, возвращенная rails g model все еще оставляет меня царапаться...

6 ответов


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

посмотреть таблица определения.


чтобы создать модель, которая ссылается на другую, используйте генератор модели Ruby on Rails:

$ rails g model wheel car:references

производит приложение / модели / колесо.rb:

class Wheel < ActiveRecord::Base
  belongs_to :car
end

и добавляет следующую миграцию:

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

когда вы запустите миграцию, в вашем 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

что касается документации, отправной точкой для генераторов rails является Ruby on Rails: руководство по команде Rails Линия что указывает на документация по API подробнее о доступных типах полей.


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

Я тоже обнаружил, что гиды трудно использовать. Легко понять, но трудно найти то, что я ищу.

кроме того, у меня есть временные проекты, которые я запускаю rails generate команды. Затем, как только я заставляю их работать, я запускаю его в своем реальном проекте.

Ссылка для вышеуказанного кода:http://guides.rubyonrails.org/getting_started.html#associating-models


помните, что при написании этой команды не следует писать текст с большой буквы. Например:

пишите:

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

Не пиши:

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

по крайней мере, это было для меня проблемой.


http://guides.rubyonrails.org должен быть хороший сайт, если вы пытаетесь пройти через основные вещи в Ruby on Rails.

вот ссылка на ассоциированные модели при их создании: http://guides.rubyonrails.org/getting_started.html#associating-models


у меня была такая же проблема, но мой код был немного другой.

def new @project = Project.new end

и моя форма выглядела так:

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

это было совершенно верно, поэтому я не знал, как это понять.

и, наконец, просто добавив url: { projects: :create } после <%= form-for @project работал для меня.