Ich habe zwei Models:
User belongs_to :user_level
UserLevel has_many :users
Erstellen, anzeigen und alles klappt wunderbar. Ich kann auch den Namen updaten usw. Nun kommen wir zum Problem:
- Code: Alles auswählen
@user = User.find(params[:id])
@user.update_attribute(:user_level, UserLevel.find(:first, :conditions => "rank = #{@user.user_level.rank - 1}"))
if @user.save
UserLevel.find(:all).each do |a|
puts "#{a.name}"
a.users.each do |b|
puts " #{b.username}"
end
end
flash[:notice] = "Der Benutzer #{@user.username} wurde zum #{@user.level} befördert."
else
flash[:error] = "Something went wrong"
end
Ergebnis:
Die Seite wird reloadet und die Index Seite wird angezeigt - der User ist nicht befördert worden (dafür soll die Funktion sein).
Im Flash steht jedoch:
Der Benutzer testMeister wurde zum Meister befördert.
(das war das Ziel)
Im Log steht:
User
testMeister
Meister
Woran könnte das liegen?

