Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vært snill å vurder å slå på annonsevisning, eller å abonnere på en reklamefri utgave av nettstedet.
  2 558
Registrer deg for å skrive svar Trådrulett
Ukjent
etse's Avatar
sep. 2004
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).
Tittelninja
flexd's Avatar
des. 2005
Users.UID finnes ikke i tabellen. Har du kjørt rake db:create og rake db:migrate med RACK_ENV satt til production?
Ukjent
etse's Avatar
sep. 2004
hei takker for svar.
Kan være det var det som var problemet, jeg løste problemet i går uten å helt vite hva jeg gjorde -e men en av tingene var å kjøre kommendoen "bundle exec rake assetsrecompile"

Men det som er merkelig er at mange ting fungerte jo. Altså ting som avhenget av databasen. Den fikk skrevet ting til databaen, og hentet informasjon ut. Og fikk laget mange beskjeder på siden, som jeg også kunne lese. Men det var kun dette ene feltet i tabellen som ikke fungerte.
Registrer deg for å skrive svar
Moderer