Bonjour,
Pour les besoins d'une application, j'ai besoin de sortir du pattern habituel de RoR.
Ce que je fais
J'ai une liste de voitures (id, brand) avec système de CRUD classique.
# model
class Car < ActiveRecord::Base
validates :brand, presence: true
end
# controller
def index
@cars = Car.all
end
def new
@car = Car.new
end
/ view
= simple_form_for @car do |f|
= f.input brand
Ce que je veux
Plutôt qu'être dans un CRUD assez classique,
je souhaite avoir dès l'index un formulaire avec tous les véhicules dans des zones de texte (un peu à la méthode des nested fields)
Une solution que j'avais envisager, c'était de faire un modèle parent :
(exemple de code)
# model
class Vehicle < ActiveRecord::Base
has_many :cars
accepts_nested_attributes_for :cars
end
class Car < ActiveRecord::Base
validates :brand, presence: true
end
# controller
def index
@cars = Car.all
end
def new
@vehicle = Vehicle.includes(:cars).where(cars: { id: params[:id] }).first
end
/ view
= simple_form_for @vehicle do |f|
= f.simple_fields_for :cars do |c|
= c.input :brand
Dans un soucis de 'perfectionnisme', ça ne m'intéresse pas de créer spécialement une table, et je souhaite savoir s'il y a un moyen plus propre ?
J'ai regardé du côté de la gem Reform de Trailblazer pour créer des "objets virtuels" composé d'une collection de voiture, je galère un peu et du coup je souhaitais avoir l'avis de développeur plus expérimenté :)
(Au delà de ce soucis, je souhaite également créer des formulaires avec des objets qui n'ont parfois aucun rapport, mais avec "1 seul bouton Enregistrer")