के साथ 'कहां' खंड के बाद `प्लक` का उपयोग नहीं कर सकता है मेरे पास एक ऐप है जिसमें Post
मॉडल हैं, जिनमें से प्रत्येक belongs_to
User
मॉडल है। जब ये पोस्ट प्रकाशित होते हैं, तो PublishedPost
मॉडल बनाया गया है जो belongs_to
प्रासंगिक Post
मॉडल है।ActiveRecord: उत्सुक लोड किए गए एसोसिएशन
मैं प्रकाशित पोस्ट है कि एक उपयोगकर्ता नाम से मेल खोजने के लिए एक ActiveRecord क्वेरी बनाने, तो उन प्रकाशित पदों की आईडी प्राप्त करने के लिए जब मैं eager- के बाद pluck
विधि का उपयोग करने की कोशिश की कोशिश कर रहा हूँ, लेकिन मैं एक त्रुटि हो रही है मेरे संगठनों को लोड करना और उन्हें where
विधि से खोजना।
यहाँ (का हिस्सा) मेरी नियंत्रक है:
class PublishedPostsController < ApplicationController
def index
ar_query = PublishedPost.order("published_posts.created_at DESC")
if params[:searchQuery].present?
search_query = params[:searchQuery]
ar_query = ar_query.includes(:post => :user)
.where("users.name like ?", "%#{search_query}%")
end
@found_ids = ar_query.pluck(:id)
...
end
end
जब pluck
विधि कहा जाता है, मैं इस:
ActiveRecord::StatementInvalid: Mysql2::Error: Unknown column 'users.name' in 'where clause': SELECT id FROM `published_posts` WHERE (users.name like '%Andrew%') ORDER BY published_posts.created_at DESC
मैं परिणाम मैं
साथ की तलाश में हूँ कर सकते हैं@found_ids = ar_query.select(:id).map{|r| r.id}
लेकिन मैं pluck
का उपयोग करता हूं क्योंकि यह जाने के लिए क्लीनर तरीका जैसा लगता है। मैं यह नहीं समझ सकता कि यह क्यों काम नहीं कर रहा है। कोई विचार?
येसएसएस! मुझे नहीं पता कि यह दस्तावेज़ों में क्यों नहीं है? कम से कम मैंने इसे नहीं देखा। – FireDragon