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.
Dette kommer fra følgende kode:
Her er TaskUsers en modell (les: table i databasen) med følgende schema:
Model-filen:
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).
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'
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'
Vis hele sitatet...
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
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
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
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.