Rails вырвать из связанных таблиц - PullRequest
0 голосов
/ 29 июня 2018

у меня две таблицы образец

has_many :abundances
self.primary_key = :sample_id

и Обилие

has_many :samples
self.primary_key = :sample_id

В контроллере изобилия у меня есть поиск ранчо

def index
@search = Abundance.ransack(params[:q])
@abundances = @search.result
@abundancez =  @abundances.paginate(:page => params[:page],:per_page => 100)
   end
end

в представлении «изобилие» у меня есть отфильтрованная таблица, основанная на параметрах Ransack.

<%= will_paginate @abundancez%>
<% @abundancez.each do |abundance| %>

<td><%= abundance.sample_id %><td>
<td><%= abundance.length %><td>
<td><%= abundance.eff_length%><td>
<td><%= abundance.est_counts%><td>
<td><%= abundance.tpm%><td>


<%  end %>

В таблице с примерами есть поле "раса", которое я хочу вывести в представлении чисел через соответствующие фильтрованные параметры, приведенные выше.

Я пытался использовать pluck в представлении

<%= will_paginate @abundancez%>
<% @abundancez.each do |abundance| %>

<td><%= abundance.sample_id %><td>
<td><%= abundance.length %><td>
<td><%= abundance.eff_length%><td>
<td><%= abundance.est_counts%><td>
<td><%= abundance.tpm%><td>
<td><%= samples.pluck(abundance.samples_id,:race)%></td>

но я получаю ошибку. Не уверен, правильно ли я это делаю или неверный синтаксис.

Спасибо!

1 Ответ

0 голосов
/ 30 июня 2018

Дело в том, что вы определили, что изобилие has_many семплов, поэтому вы не можете вернуть значение расы для одного семпла, как вы делаете здесь.

Как вы сказали в своих комментариях, похоже, что ваши ассоциации ошибочны, измените вашу модель численности с has_may наочного_для

belongs_to :sample

и затем, по вашему мнению, вы можете вернуть значение расы следующим образом

<%= will_paginate @abundancez%>
<% @abundancez.each do |abundance| %>

<td><%= abundance.sample_id %><td>
<td><%= abundance.length %><td>
<td><%= abundance.eff_length%><td>
<td><%= abundance.est_counts%><td>
<td><%= abundance.tpm%><td>
<td><%= abundance.sample.race %></td>

это потому, что вы сказали в комментариях, что у обилия есть атрибут sample_id, поэтому обилие принадлежит образцу. конечно, это будет работать, если у атрибута изобилия есть атрибут sample_id, заполненный действительным идентификатором (существующий один образец), и, конечно, что он имеет значение гонки.

...