Я знаю, что это глупый вопрос, но, как и многое другое о обучении Rails, я считаю, что документация невероятно сложно найти/ориентироваться.
Я пытаюсь создать новую модель и забыть синтаксис для ссылки на другой идентификатор модели. Я бы посмотрел сам, но не понял, среди всех ссылок на ссылки на рельсы, как найти окончательный источник.
$ rails g model Item name:string description:text
(и здесь либо reference:product
, либо references:product
). Но лучший вопрос - где и как я могу выглядеть такой глупостью в будущем, поэтому мне не нужно беспокоить всех вас своими глупыми вопросами.
Примечание. Я усердно изучил, что, если я ошибаюсь в одном из этих параметров и запускаю мою миграцию, Rails полностью испортит мою базу данных... и rake db:rollback
бессилен против таких отвращений. Я уверен, что я просто не понимаю что-то, но до тех пор, пока не сделаю... "подробная" информация, возвращаемая rails g model
, все еще оставляет меня царапающей...
:primary_key, :string, :text, :integer, :float, :decimal, :datetime, :timestamp,
:time, :date, :binary, :boolean, :references
См. раздел определения таблиц.
:reference
или :references
в вашем ответе или объяснение того, как передать его генераторам по предоставленной вами ссылке?!?
rails generate model Song name:string mp3url:string description:text
создаст модель песни с именем свойства с типом string и т.д ..
Чтобы создать модель, которая ссылается на другую, используйте генератор модели рельсов:
$ 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 для получения дополнительных сведений о доступных типах полей.
$ rails g model Item name:string description:text product:references
Я тоже нашел, что руководства трудно использовать. Легко понять, но трудно найти то, что я ищу.
Кроме того, у меня есть проекты temp, в которых я запускаю команды 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 должен быть хорошим сайтом, если вы пытаетесь пройти базовый материал в рельсах. Вот ссылка на ассоциированные модели при их создании. http://guides.rubyonrails.org/getting_started.html#associating-models
model_name:references
. Спасибо!
Немного поздно! У меня была такая же проблема, но мой код был немного другим.
def new
@project = Project.new
end
и моя форма выглядела так:
<%= form_for @project do |f| %>
and so on....
<% end %>
Это было абсолютно правильно, поэтому я не знал, как это понять.
Наконец, просто добавив url: { projects: :create }
после <%= form-for @project
, работал у меня.
Я надеюсь, что это поможет кому-нибудь!
:integer
:string
и т. Д.).
rails generate model --help