我有两个桌子 样本
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 %>
示例表中有一个字段,我想通过对应于上面过滤的参数在丰富度视图中上拉种族。
我试图在视图中使用弹拨
<%= 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>
但是我得到一个错误。不知道我是要正确使用还是语法错误。
谢谢!
答案 0 :(得分:0)
这里的事情是,您定义了一个 has_many 个样本,因此您不能像在此那样返回一个样本的种族值。
正如您在评论中所说,看来您的关联是错误的,将您的丰度模型从has_may更改为belongs_to
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属性填充了有效的ID(一个现有的样本),并且具有竞价值,那么这将起作用。