2010-07-27 4 views
0

Dans une application Ruby on Rails sur laquelle je travaille, j'ai un modèle qui appartient à un utilisateur. L'utilisateur peut en créer plusieurs.Pré-remplir l'enregistrement avec les valeurs de l'enregistrement précédent

Lorsqu'un utilisateur passe à la nouvelle action, je souhaite préremplir les valeurs avec les valeurs du dernier enregistrement créé. Ceux-ci peuvent ensuite être modifiés si vous le souhaitez et utilisés pour créer un nouvel enregistrement.

Je suppose que dans la nouvelle action de mon contrôleur, je peux obtenir l'enregistrement le plus récent (en utilisant quelque chose comme ça).

Une fois que j'ai cela, comment puis-je l'utiliser pour pré-remplir l'enregistrement que j'ai créé avec la nouvelle méthode?

Répondre

0

La réponse semble être d'utiliser la méthode de .clone selon les instructions here

0

Vous ne pouvez pas simplement initialiser l'attr?

class Model < ActiveRecord::Base 
    def initialize_some_attr 
    Model.first(:order => "created_at DESC").some_attr 
    end 
end 
+0

Oui, je suppose que je pouvais le faire, j'espérais qu'il y avait un moyen de le faire à la fois . Comme peut-être juste obtenir Model.first et effacer l'identifiant ou quelque chose. Je suis nouveau à Ruby et Ruby on Rails, donc je pourrais manquer quelque chose d'évident. – John

+0

On dirait qu'il fait tout à la fois la seule chose que vous devez faire est Model.create ?? – nicholasklick

0
r = Model.first(:order => "created_at DESC") 
n = Model.new(r.attributes) 
Questions connexes