2016-03-28 17 views
0

Bir yer imi özelliğini uygulamada sorun yaşıyorum. Geçerli kullanıcının kimliğine uyan yer işareti tablosundaki tüm teknikleri sorgulamak istiyorum. Sorun, actuall tekniğinin özelliklerini çıkarmak için sorguyu alamıyorum. Ben Bu sorgudaBir_sayfasıyla bir dize üzerinde foreing_key sorgulama. Raylar

def index 
@technique = Bookmark.joins(:technique).where(user_id: current_user) 
end 

class Bookmark < ActiveRecord::Base 
belongs_to :user 
belongs_to :technique 
end 

Kullanıcı Modeli

class User < ActiveRecord::Base 
has_many :bookmarks 
end 

Ben onların eminim İmi modeli ile kontrolör olan

eksik yöntemi "uid" almaya devam sorgumla ilgili bir sorun ama sıkıştım.

+0

mi:

bu bir çözüm joins sorguyu yürütmek ve tekniklerin eşleşti koleksiyonunu elde etmek olurdu? –

cevap

1

Bookmark.joins(:technique).where(user_id: current_user)'u yaptığınızda, , techniques ürününü alırsınız. Eğer techniques istiyorsanız

, aşağıdakileri yapabilirsiniz: current_userwhere fıkrada gerekli doğru türde değil çünkü

Bookmark.joins(:technique).where(user_id: current_user.id).collect(&:technique)

+0

Mükemmel çalışır! – nharvey27

0

sorgu bir hata atar. Mevcut kullanıcının kimliğini belirtmeniz gerekiyor. Ayrıca, sorgunuz :bookmarks topluluğuna ve techniques'a neden olmaz. user`: `belongs_to o` Technique` model

def index 
@technique = Bookmark.joins(:technique).where(user_id: current_user.id).collect(&:technique) 
end