Its has_many through relationship so Rails will not add staff_id column in
complaint table.

According to your reply on has_many through relationship in thinking sphinx
rails group (reference:
https://groups.google.com/forum/#!searchin/thinking-sphinx/Continent$20/thinking-sphinx/v2-wOgfoLIQ/A_UCcG147EoJ
 ).


*Complaint*
has_many :complaint_replies
has_many :staffs, :through=> :complaint_replies


I have created below method

def staff_ids
  complaint_replies.collect(&:staff).collect(&:id)
end

But it was returning *single result*.  (i.e. [Complaint.first.staffs.first])

So I recode that method

def staff_ids
  staffs.collect(&:id)
end

It is returning *multiple record* as expected. (i.e. Complaint.first.staffs)

On Wed, Sep 16, 2015 at 1:27 PM, Pat Allan <[email protected]> wrote:

> Sorry, I’m not clear on this: does Rails not automatically add the
> `staff_ids` method for you? I wouldn’t expect it to be a column in the
> complaints table - this is a real-time index, so the database isn’t
> important.
>
> On 16 Sep 2015, at 12:36 am, Chaitali Khangar <[email protected]>
> wrote:
>
> Yes but its not adding the staff_ids in complaints table.
>
> On Wed, Sep 16, 2015 at 1:01 PM, Pat Allan <[email protected]>
> wrote:
>
>> I’m not sure why it didn’t work the first way… but also, given you’ve got
>> the association there, Rails should automatically add a `staff_ids` method
>> for you, so you don’t need to create one yourself.
>>
>> On 16 Sep 2015, at 12:28 am, Chaitali Khangar <[email protected]>
>> wrote:
>>
>> Hi Pat,
>>
>> I have tried it in other way.
>>
>> def staff_ids
>>   staffs.collect(&:id)
>> end
>>
>> And its returning the expected result.
>>
>> But is this a correct way?
>>
>> On Wed, Sep 16, 2015 at 12:22 PM, Chaitali Khangar <
>> [email protected]> wrote:
>>
>>> Yes, the generated conf file is:
>>>
>>> index complaint_core
>>> {
>>>   type = rt
>>>   path =
>>> /home/de1/Documents/DblDocuments/thinking_sphinx_latest/dbl_latest_rails_best_practices/dblpc/db/sphinx/development/complaint_core
>>>   docinfo = extern
>>>   min_infix_len = 1
>>>   enable_star = 2
>>>   rt_field = sphinx_internal_class_name
>>>   rt_field = user_id
>>>   rt_field = nursing_triage_id
>>>   rt_field = status
>>>   rt_field = complaint_priority
>>>   rt_field = user_first_name
>>>   rt_field = user_last_name
>>>   rt_field = nursing_triage_first_name
>>>   rt_field = nursing_triage_last_name
>>>   rt_attr_uint = sphinx_deleted
>>>   rt_attr_uint = complainer_user_id
>>>   rt_attr_uint = complainer_nursing_triage_id
>>>   rt_attr_uint = staff_id
>>>   rt_attr_bigint = sphinx_internal_id
>>>   rt_attr_string = sphinx_internal_class
>>>   rt_attr_multi = complaint_replies_id
>>>   rt_attr_multi = staff_ids
>>> }
>>>
>>>
>>> On Wed, Sep 16, 2015 at 12:25 AM, Pat Allan <[email protected]>
>>> wrote:
>>>
>>>> Hmm, looks right to me. Does the generated development.sphinx.conf file
>>>> have staff_ids as a multi-value attribute?
>>>>
>>>> On 14 Sep 2015, at 11:41 pm, Chaitali Khangar <
>>>> [email protected]> wrote:
>>>>
>>>> Thanks for your reply.
>>>>
>>>> *Complaint Index File*
>>>>
>>>> ThinkingSphinx::Index.define :complaint, :with => :real_time do
>>>>  indexes user_id
>>>>  indexes nursing_triage_id
>>>>  indexes status
>>>>  indexes complaint_priority
>>>>  indexes user.first_name, :as=>:user_first_name
>>>>  indexes user.last_name, :as=>:user_last_name
>>>>  indexes nursing_triage.first_name, :as=>:nursing_triage_first_name
>>>>  indexes nursing_triage.last_name, :as=>:nursing_triage_last_name
>>>>  has user.id,:as=>:complainer_user_id,:type => :integer
>>>>  has nursing_triage.id,:as=>:complainer_nursing_triage_id,:type =>
>>>> :integer
>>>>  has complaint_replies.staff.id, :as=>:staff_id,:type => :integer
>>>>  has complaint_replies_id,:type => :integer,:multi=>true
>>>>  has staff_ids,:type => :integer,:multi=>true
>>>> end
>>>>
>>>> In *Complaint.rb* I have created below method:
>>>>
>>>> def staff_ids
>>>>   complaint_replies.collect(&:staff).collect(&:id)
>>>> end
>>>>
>>>>
>>>> On Tue, Sep 15, 2015 at 11:36 AM, Pat Allan <[email protected]>
>>>> wrote:
>>>>
>>>>> Hi Chaitali
>>>>>
>>>>> Can you share your index definition please? It sounds like something
>>>>> there isn’t quite correct. And if it’s a real-time index, any methods in
>>>>> Complaint used by the index definition would be great too.
>>>>>
>>>>> Thanks
>>>>>
>>>>> —
>>>>> Pat
>>>>>
>>>>> On 11 Sep 2015, at 5:12 am, Chaitali Khangar <
>>>>> [email protected]> wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I have tried *Has Many Through Relationship* by real time but its
>>>>> returning me single result. Can you please help me?
>>>>>
>>>>> *Complaint*
>>>>> has_many :complaint_replies
>>>>> has_many :staffs, :through=> :complaint_replies
>>>>>
>>>>> *Staff*
>>>>> has_many :complaint_replies
>>>>> has_many :complaints, :through=> :complaint_replies
>>>>>
>>>>> *Complaint Reply*
>>>>> belongs_to :complaint
>>>>> belongs_to :staff
>>>>>
>>>>> *Thinking Sphinx Query*
>>>>>
>>>>> Complaint.search(:with=>{:staff_ids=>Staff.first.id
>>>>> <http://staff.first.id/>})
>>>>>
>>>>> It's returning *single* result.
>>>>>
>>>>> *Expected Output*
>>>>>
>>>>> Staff.first.complaints
>>>>>
>>>>> Its returning *more than one result* result.
>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Thinking Sphinx" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Thinking Sphinx" group.
>>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>>> an email to [email protected].
>>>>> To post to this group, send email to [email protected].
>>>>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Thinking Sphinx" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>>
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Thinking Sphinx" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Thinking Sphinx" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>> For more options, visit https://groups.google.com/d/optout.
>>
>>
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "Thinking Sphinx" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to [email protected].
>> To post to this group, send email to [email protected].
>> Visit this group at http://groups.google.com/group/thinking-sphinx.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Thinking Sphinx" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/thinking-sphinx.
> For more options, visit https://groups.google.com/d/optout.
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Thinking Sphinx" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To post to this group, send email to [email protected].
> Visit this group at http://groups.google.com/group/thinking-sphinx.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Thinking Sphinx" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/thinking-sphinx.
For more options, visit https://groups.google.com/d/optout.

Reply via email to