Di aplikasi saya, saya memiliki halaman yang memposting status pengguna yang saya ikuti. Saya baru mengenal Rails dan kesalahan ini membunuh saya. Saya bisa memberikan apa pun jika diperlukan
halaman_controller.rb
def home
if signed_in?
@hub_items = current_user.hub.paginate(page: params[:page])
end
end
pengguna.rb
def hub
Timeline.from_users_followed_by(self)
end
garis waktu.rb
def self.from_users_followed_by(user)
followed_user_ids = "SELECT followed_id FROM relationships
WHERE follower_id = :user_id"
where("user_id IN (#{followed_user_ids}) OR user_id = :user_id",
user_id: user.id)
end
Dan inilah jejak kesalahannya.
Memulai GET "/" untuk 127.0.0.1 pada 24-08-2014 14:11:28 -0700 Diproses oleh PagesController#home sebagai Pengguna HTML Muat (3,0 md) PILIH "pengguna".* DARI "pengguna" DI MANA "pengguna". "id" = ? LIMIT 1 [["id", 4]] Menyelesaikan 500 Kesalahan Server Internal dalam 257 md
NoMethodError (metode `di mana' yang tidak ditentukan untuk Timeline:Class):
app/models/timeline.rb:47:in `from_users_followed_by' app/models/user.rb:24:in `hub' app/controllers/pages_controller.rb:5:in `home'
Dirender C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.1.2/lib/action_dispatch/middleware/templates/rescues/_source.erb (4.0ms) Dirender C:/Ruby200/lib/ruby /gems/2.0.0/gems/actionpack-4.1.2/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (4.0ms) Dirender C:/Ruby200/lib/ruby/gems/2.0.0/ gems/actionpack-4.1.2/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (5.0ms) Dirender C:/Ruby200/lib/ruby/gems/2.0.0/gems/actionpack-4.1.2 /lib/action_dispatch/middleware/templates/rescues/diagnostics.erb dalam penyelamatan/tata letak (646.0ms)
Timeline
Anda tidak mewarisi dariActiveRecord::Base
, jadi metode.where
tidak ada. Sepertinya Anda ingin melakukanPost.where(...)
. - person Thomas Klemm   schedule 25.08.2014where
pada model Anda adalah karena model tersebut tidak mewarisi dariActiveRecord::Base
- person Pramod Solanky   schedule 25.08.2014