Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Det hadde gjort oss veldig glade om du hadde vurdert å slå på annonsevisning for freak.no =).
Fjern denne boksen med ABP compatible filter: freak.no###nagmsg
Gå til maryjanes.no
Registrer deg for å skrive svar
  2 531
Trådverktøy
etse
Ukjent
etse's Avatar
 
sep. 2004
Trådstarter
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.

Sitat:
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).
flexd
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?
etse
Ukjent
etse's Avatar
 
sep. 2004
Trådstarter
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
Trådverktøy