Prendre cet article comme point de départ:proxie association Construire avec par
Rails Way Blog - Association Proxies
et regardant spécifiquement
def create
@todo_list = current_user.todo_lists.build params[:todo_list]
if @todo_list.save
redirect_to todo_list_url(@todo_list)
else
render :action=>'new'
end
end
Ceci est une façon de faire en sorte que vous attribuer la propriété à l'utilisateur
MAIS en supposant que la liste de tâches était une relation de plusieurs un has_many par dire
def User < AR:Base
has_many :user_todos
has_many :todo_lists, :through => :user_todos
end
À ce stade ...
@todo_list = current_user.todo_lists.build params[:todo_list]
fonctionne toujours, mais seulement le todo_list est enregistré et non la jointure. Comment puis-je obtenir la joie des proxies d'association sans avoir beaucoup d'imbriqués if/else si l'instance jointe ou Todo ne valide pas lorsqu'elle est sauvegardée.
Je pensais à quelque chose le long des lignes de ...
@todo_list = cu.user_todos.build.build_to_do(params[:todo_list])
mais comme je l'ai mentionné ci-dessus les user_todos ne vous laissez pas sauvé.
Votre aide est grandement appréciée!
Kevin.
Vous parlez de 'User # todo_lists' et de' User # todos' de façon interchangeable, mais ce sont deux choses différentes depuis que vous avez ajusté la structure. Renommer comme ça devrait tout casser. – tadman
Ah oui. Je vais changer ça. Cela ne sauvera quand même pas la jointure! :) –