Jeg har en kode som fungerer helt fint på den lokale maskinen min og som kjører helt fint på serveren gjennom test-serveren (som man kjører mest kommandoen "rails s")
Når jeg derimot velger å teste websiden på serveren min funker den for det meste, bortsett fra en liten men alvorlig bug, hvor den gir meg følgende feilmelding.
ActiveModel::MissingAttributeError (missing attribute: UID):
app/controllers/application_controller.rb:114:in `block in getMembersForTask'
app/controllers/application_controller.rb:113:in `each'
app/controllers/application_controller.rb:113:in `getMembersForTask'
app/controllers/tasks_controller.rb:190:in `show'
Dette kommer fra følgende kode:
Kode
def getMembersForTask(taskId)
usersTask = TaskUsers.where(:TID => @task.id)
usersList = []
usersTask.each do |u|
tmpUser = Users.find_by_id(u.UID)
@member = Member.new(tmpUser.id, tmpUser.name, tmpUser.lastname, @privilegeMap[u.privilege - 1])
usersList.push(@member)
end
end
Her er TaskUsers en modell (les: table i databasen) med følgende schema:
Kode
create_table "task_users", :force => true do |t|
t.integer "TID"
t.integer "UID"
t.integer "privilege"
t.datetime "created_at"
t.datetime "updated_at"
end
Model-filen:
Kode
class TaskUsers < ActiveRecord::Base
attr_accessible(:TID, :UID, :privilege, :created_at, :updated_at)
validates :TID, :presence => true
validates :UID, :presence => true
before_save :default_values
def default_values
self.privilege = 4 unless self.privilege
end
end
Noen her som har noen gode forslag på hvorfor dette kun skjer på en production-server med apache og physion-passenger, men ikke på den innebyggede development serveren?
Det som gjør det enda merkeliggere er at feilen forsvinner om jeg restarter serveren - men kommer tilbake om lager en ny "Task" på siden (noe som fører til at det kommer en ny rad i TaskUsers-tabellen).
Sist endret av etse; 28. april 2012 kl. 01:41.