J'ai un modèle de livre avec les attributs ID, nom, prix. J'ai une instance de livre:Comment copier ou copier un modèle?
b1 = Book.new
b1.name = "Blah"
b1.price = 12.5
b1.save
Je voudrais copier b1, créer une autre instance du modèle de produit. Je suis tryid p1 = b1.clone puis p1.save mais ça n'a pas marché. Une idée?
Et mon environnement est:
- Netbeans 6.9 RC2
- JRuby 1.5.0
ÉDITÉ: Mon modèle TemporaryProduct:
class Admin::TemporaryProduct < ActiveRecord::Base
def self.update_from_web_service(web_service_url)
response = HTTParty.get(web_service_url)
response["webServiceResult"]["product"].each do|element|
unless exists? :orignal_product_id => element['id']
create!(
:name => element['name'],
:price => element['price'],
:amount => element['amount'],
:description => element['description'],
:orignal_product_id => element['id'],
:image => element['image'],
:shop_account_number => element['shopAccountNumber'],
:unit => element['unit']
)
end
end
end
end
Le produit est de créer action:
def create
@temporary_products = Admin::TemporaryProduct.find_all_by_orignal_product_id(params[:product])
@product = Admin::Product.new(@temporary_products.attributes)
# @product = @temporary_products.clone
respond_to do |format|
format.html { redirect_to(admin_products_url, :notice => 'Admin::Product was successfully created.') }
end
end
Je souhaite cloner tous les attributs de b1 sur le modèle p1.
Dans votre action 'create' publiée,' @ temporary_products' sera un tableau d'objets de type 'Admin :: TemporaryProduct'. 'attributes' est une méthode d'une instance unique. Je ne suis pas tout à fait clair si vous voulez cloner tous les résultats, ou juste un, ou si vous vous attendez 'find_all_by_original_product_id' pour retourner seulement 1 résultat. – Chowlett
Je ne pense pas. C'est retourner un tableau. – Zeck
Oui, je sais qu'il retourne un tableau. Par conséquent '@ temporary_products.attributes' ne fonctionnera pas, car' .attributes' est une méthode d'une * instance unique *. Essayez-vous de cloner tous les produits temporaires retournés, ou juste un? – Chowlett