Ruby on Rails generuje pole modelu: type-jakie są opcje dla pola: type?

Próbuję wygenerować nowy model i zapomnieć o składni odwołującej się do identyfikatora innego modelu. Sam bym to sprawdził, ale nie znalazłem, wśród wszystkich moich linków do dokumentacji Ruby on Rails, jak znaleźć ostateczne źródło.

$ rails g model Item name:string description:text (i tu albo reference:product albo references:product). Ale lepszym pytaniem jest gdzie lub Jak mogę łatwo szukać tego rodzaju głupoty w przyszłości?

Uwaga: nauczyłem się na własnej skórze, że jeśli źle wpisuję jedną z tych opcji i Uruchom moją migrację wtedy Ruby on Rails całkowicie zepsuje moją bazę danych... i rake db:rollback jest bezsilny wobec takich wpadek. Jestem pewna, że czegoś nie rozumiem, ale dopóki tego nie zrobię... "szczegółowe" informacje zwracane przez rails g model wciąż mnie drapią...

Author: user2262149, 2010-12-08

6 answers

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

Patrz sekcja definicje tabeli .

 450
Author: Paul Schreiber,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-10-01 18:21:10

Aby utworzyć model, który odwołuje się do innego, użyj generatora modeli Ruby on Rails:

$ rails g model wheel car:references

, który produkuje app / models / wheel.rb:

class Wheel < ActiveRecord::Base
  belongs_to :car
end

I dodaje następującą migrację:

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

Po uruchomieniu migracji w twoim dB/schemacie pojawią się następujące elementy.rb:

$ rake db:migrate

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

Jeśli chodzi o dokumentację, punktem wyjścia dla generatorów rails jest Ruby on Rails: Przewodnik po wierszu poleceń Rails , który wskazuje na API Dokumentacja aby uzyskać więcej informacji o dostępnych typach pól.

 183
Author: Troy,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-08 03:02:22

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

Ja również uważam, że przewodniki są trudne w użyciu. Łatwo zrozumieć, ale trudno znaleźć to, czego szukam.

Mam również projekty temp, na których uruchamiam komendy rails generate. Potem, gdy już je uruchomiłem, uruchomiłem je na moim prawdziwym projekcie.

Odniesienie do powyższego kodu: http://guides.rubyonrails.org/getting_started.html#associating-models

 7
Author: B Seven,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-20 17:47:45

Pamiętaj, aby nie zapisywać tekstu wielkimi literami podczas pisania tego polecenia. Na przykład:

Napisz:

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

Nie pisz:

rails g Model product title:string description:text image_url:string price:decimal
Przynajmniej to był dla mnie problem.
 3
Author: Victor Augusto,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-05-31 17:08:36

Http://guides.rubyonrails.org powinna być dobrą stroną, jeśli próbujesz przejść przez podstawowe rzeczy w Ruby on Rails.

Oto link do kojarzenia modeli podczas ich generowania: http://guides.rubyonrails.org/getting_started.html#associating-models

 3
Author: Raghu,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-08 03:01:37

Miałem ten sam problem, ale mój kod był trochę inny.

def new @project = Project.new end

A moja forma wyglądała tak:

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

To było całkowicie poprawne, więc nie wiedziałem, jak to rozgryźć. W końcu dodanie url: { projects: :create } po <%= form-for @project zadziałało.
 0
Author: justinedps26,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-01-08 03:03:18