2017-05-17 1 views
0

Je suis nouveau dans Rails, tous les conseils, des conseils seraient appréciés.Rails envoyer paramètre fort et mettre à jour 2 tables à la fois

rails: '4.2.5'

J'ai 2 tables comme ci-dessous. Shop (Master table) Shop_detail (Détail table) Il y a une relation entre 2 tables.

Ce que je veux faire

valeurs d'entrée Envoyer utilisateur aux contrôleurs via AJAX. Les valeurs sont comme, nom_produit, image_élément, prix, etc.

Dans le contrôleur, je souhaite créer 2 tables comme ci-dessous. Shop (Master table) -> créer un nouvel enregistrement avec shop_name.

Shop_detail (table de détails) -> créer un nouvel enregistrement avec item_image, price et shop_id qui est obtenu à partir de Shop (Master table).

Je veux mettre le paramètre fort comme ci-dessous. En conséquence, j'ai eu une erreur ci-dessous.

Terminé 406 Non acceptable en 83ms (ActiveRecord: 0,4 ms) ActionController :: UnknownFormat (ActionController :: UnknownFormat):

+0

Pouvez-vous montrer votre code de contrôleur complet? – Gerry

+0

Également afficher votre code modèle. – hashrocket

Répondre

1

Vous pouvez le faire en une seule fois, mais vous assurer que vous avez la has_many relation entre la table principale et de l'enfant et d'assurer votre table enfant a belongs_to à maîtriser:

def post_detail_params 
    params.permit(:shop_name, shop_details: [:item_image, :price]) 
end 


post = Shop.build(post_detail_params) 
post.save 

Relations de modèle:

class Shop < ActiveRecord::Base 
    has_many: shop_details 
end 

class ShopDetail < ActiveRecord::Base 
    belongs_to: shop 
end