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

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

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

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

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

273
задан Meltemi 08 дек. '10 в 7:50
источник поделиться
6 ответов
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
:time, :date, :binary, :boolean, :references

См. раздел определения таблиц.

428
ответ дан Paul Schreiber 08 дек. '10 в 8:02
источник поделиться

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

$ rails g model wheel car:references

Это создает приложение /models/wheel.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

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

178
ответ дан Troy 13 июля '11 в 19:46
источник поделиться

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

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

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

Ссылка на приведенный выше код: http://guides.rubyonrails.org/getting_started.html#associating-models

7
ответ дан B Seven 20 июня '11 в 20:47
источник поделиться

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

3
ответ дан Raghu 08 дек. '10 в 7:59
источник поделиться

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

Пишите:

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

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

3
ответ дан Victor Augusto 22 авг. '12 в 17:28
источник поделиться

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

def new @project = Project.new end

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

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

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

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

Я надеюсь, что это поможет кому-нибудь!

0
ответ дан justinedps26 12 окт. '16 в 5:50
источник поделиться

Другие вопросы по меткам