Hé les gars, j'ai utilisé la relation has_and_belongs_to_many relation avec les cases à cocher du Railscast Episode #17. J'ai eu quelques problèmes et maintenant tout fonctionne bien, sauf le bouton de mise à jour ne fonctionne pas.mettre à jour les valeurs de case à cocher avec la relation HABTM - Rails
la vue d'édition ressemble si
<% form_for :users, :action => 'update' do |f| %>
<% for interest in Interest.find(:all) %>
<div>
<%= check_box_tag "user[interest_ids][]", interest.id,
@user.interests.include?(interest) %>
<%= interest.name %>
</div>
<% end %>
<p>
<%= f.submit 'Update' %>
</p>
<% end %>
et dans le contrôleur je ....
def edit
@user = User.find(session[:user_id])
end
def update
params[:user][:interest_ids] ||= []
@user = User.find(session[:user_id])
if @user.update_attributes(params[:user])
flash[:notice]='User data was updated'
redirect_to :action => 'index'
else
redirect_to :action => 'index'
end
end
Le bouton est l'événement fait la redirection ... alors je ne sais pas que ce passe-t-il. Y a-t-il quelque chose dans la création de ma forme qui chamboule tout ça? Je ne suis pas sûr de savoir comment créer un bouton et avoir accès à la méthode dans le contrôleur des mises à jour du modèle et etc.
Je regardais autour de l'aide et peut-être pensé était à cause de attr_accessible donc j'ajouté =>
attr_accessible :login, :email, :password, :password_confirmation, :interest_ids, :user
à mon modèle d'utilisateur mais toujours rien ... N'importe quelle idée que mon formulaire ne soumet pas?
Cela ne gère pas le cas lorsque vous les avez tous décochés. –
et n'a pas travaillé sur la dernière version des rails –
lorsque nous avons tous les rails décochés vont supprimer toutes les relations – antiqe