J'ai la conception base de données suivante:emboîtées dans Activeadmin avec une sélection de menu déroulant - Ruby on Rails
Un pour peut avoir une taille et une taille peut être dans de nombreux commandes.
Par exemple:
Order 1 has a size attribute equal to medium
Order 2 has a size attribute equal to medium
Je veux être en mesure de choisir une taille lorsque je crée un ordre en administration active.
modèle de commande:
class Order < ApplicationRecord
has_one :order_size
accepts_nested_attributes_for :order_size, :allow_destroy => true
end
modèle taille de la commande:
class OrderSize < ApplicationRecord
belongs_to :orders
end
En outre, une table OrderSize doit avoir une colonne de order_id?
Je ne sais pas si les modèles sont des droits mais activeadmin me donne cette erreur:
undefined method `order_id' for #<Order:0x007fb980e34b80>
Mes modèles activeadmin
Commander Taille:
ActiveAdmin.register OrderSize do
permit_params :name
end
Ordre:
ActiveAdmin.register Order do
permit_params :due_date, :comments, :approved, :order_size_id,
order_size_attributes: [:id, :name,:_destroy]
form do |f|
f.inputs "Admin Details" do
f.input :due_date
f.input :order_size
f.input :comments
f.input :approved
end
f.actions
end
end
Mais je pourrai avoir la même taille de commande (par exemple moyenne) dans différentes commandes? – exsnake
@exsnake Je crains que vous ne deviez changer vos associations pour satisfaire cela! – Pavan
@pavin Hmmm pouvez-vous m'aider avec ça? Je suppose qu'un Ordre ne peut avoir qu'une taille et qu'une taille peut faire partie de plusieurs ordres. J'utilise 'belongs_to' faux? – exsnake