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
работал для меня.