In haben eine ziemlich einfache Schienen app, hier ist mein Code:
class Post < ActiveRecord::Base
belongs_to :category
attr_accessible :category_id, :category_attributes
accepts_nested_attributes_for :category, :reject_if => :all_blank
end
class Category < ActiveRecord::Base
has_many :posts
end
#app/views/posts/_form.html.haml
= simple_form_for(@post) do |f|
= f.association :category
= f.simple_fields_for :category do |cat_f|
= cat_f.input :name
Wenn ich also einen neuen Beitrag erstelle, habe ich die Möglichkeit, eine Kategorie auszuwählen (aus dem Auswahlmenü) oder eine neue zu erstellen (wenn sie nicht existiert).
Ich möchte bestätigen, dass kategorie_id vorhanden ist, es sei denn, der Nutzer entscheidet sich für die Erstellung einer neuen Kategorie
Ich vermute, es gibt eine Art von Schienen Weg, um dieses Problem zu lösen - ich weiß, dass ich nicht einfach hinzufügen können validates :category_id, :presence => true
da dies dazu führt, dass die Übermittlung des Formulars fehlschlägt, wenn der Benutzer beschließt, eine neue Kategorie zu erstellen (und keine Kategorie aus der Dropdown-Liste auswählt).
Zweite Frage: Ich habe vor kurzem ein nützliches Rails-Tutorial gelesen, in dem gezeigt wurde, wie man zwischen der Anzeige des Kategorieauswahlmenüs und der Anzeige der neuen Kategoriefelder umschalten kann, so dass immer nur eines der beiden auf dem Bildschirm zu sehen ist. Hat jemand einen Link zu so etwas?