2013-08-07 27 views
0

我有2個模型,例如UserTracking當我嘗試使用Active Record進行檢索時,爲什麼會出現零錯誤?

Tracking模型具有低於

  • ID
  • USER_ID
  • 這些6列target_user_id
  • accessed_at
  • created_at
  • 的updated_at

模型/ user.rb

has_many: trackings 

模型/ tracking.rb

belongs_to :user 
belongs_to :user, :foreign_key => "target_user_id", :class_name => "User" 

然後在controllers/trackings_controller.rb,我編碼這樣

控制器

@trackings = Tracking.find_by_target_user_id(current_user.id).page(params[:page]).per(10) 

但我得到零的錯誤:(爲什麼?
在追蹤表中沒有記錄。 我該如何檢索?

,如果我只是這樣的代碼吧,有沒有錯誤ocuured :(

@trackings = Tracking.page(params[:page]).per(10) 
+1

由於沒有在漏電痕跡表尚未作出記錄你如果你沒有使用Tracking.find_by_target_user_id(current_user.id)然後你正在做nil.page(params [:page])。因此你得到零錯誤。 – Deepika

+0

@deepika那麼爲什麼我不會得到零的錯誤, m編碼'@trackings = Tracking.page(params [:page])。per(10)'代替? – MKK

+0

你可以看到你的錯誤的回溯,並用[更好的錯誤](https://github.com/charliesome/better_errors)gem很好地調查每一步。 –

回答

1

如果您想尋找漏電痕跡爲CURRENT_USER

@trackings = Tracking.where(:target_user_id => current_user.id).page(params[:page]).per(10) 
+0

謝謝!那麼,由於我不能使用'find_by_something',Active Record有什麼用呢? – MKK

+1

看,你需要結果中的一個活動記錄數組,並且find_by_something爲你提供了一個活動記錄。情況就是如此。 –

+0

Ahhhh,Active Record僅適用於一對一關聯的情況? – MKK

相關問題