2010-03-22 4 views
1

Ma table produit estCréation d'éléments en groupes dans Rails

id  type   price  location 
1   chips   $3   aisle3 

J'ai une question d'ajouter les produits en groupes. Il y a un champ quantité (de nonmodel) où l'utilisateur peut entrer la quantité Lors de l'ajout d'un nouveau produit si l'utilisateur entre:

type: soda 
quantity: 3 

Ensuite, il y a 3 enregistrements doivent être créés dans le modèle de produit avec type = soda comme Suivant.

id type 
2 soda 
3 soda 
4 soda 

Si l'utilisateur entre

location: aisle4 
quantity: 2 

Puis

id location 
5 ailse4 
6 ailse4 

Pouvez-vous me dire comment passer le champ nonmodel 'quantité' aux rails (modèle ou contrôleur) et comment l'utiliser ajouter les produits dans les groupes comme mentionné ci-dessus? ou devrais-je créer une colonne appelée quantité dans ma table de produits? L'histoire sera-t-elle aussi mise à jour pour tous ces nouveaux enregistrements avec le filtre after_create que j'ai déjà? Existe-t-il un bon didacticiel ou un bon livre qui montre comment passer de tels champs html/javascript non modélisés de la vue à des rails puis revenir à la vue? Toute aide sera grandement appréciée. Merci

Répondre

1

Essayez ceci:

class Product < ActiveRecord:Base 

    attr_accessor :quantity 


    def self.create_in_group(params) 
    size, i = params["quantity"].to_i, 0 
    size.times { Product.create(params);i+=1 } 
    i == size 
    end 

end 

class ProductsController < ApplicationController 

    def create 
    if Product.create_in_group(params[:product]) 
     # success 
    else 
     # error 
    end 
    end 

end 

PS: À votre avis, vous pouvez accéder au champ quantity comme si elle est un champ de modèle de produit.