View Single Post
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'
Vis hele sitatet...
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. 02:41.