返回查询以在侧栏上显示广告

时间:2015-12-10 15:00:21

标签: ruby sqlite ruby-on-rails-4 activerecord

我正在使用三个表Salon TreatmentServiceServiceSalon所有。 ServiceTreatment有直接关系,因为每个Service都有Treatment但不是每个Treatment都有Service。治疗持有变量Category

我正在尝试在与他们正在查看的treatments/show相关的所有服务的Treatment的侧栏上显示结果。

在我的application helper我有以下查询

def salonAds

@ads = Services.includes(:treatment).where('treatment.category = ?',  Service[:treatment_id])

end

但我知道这是错误的。

我是他们试图在do

中拨打treatments/show
<% @ads.each do |ads| %>
<td><%= ads.description %></td>
    <td><%= ads.price %></td>

   <% end %>

非常感谢任何有关如何实现这一目标的解决方案或替代方案

1 个答案:

答案 0 :(得分:0)

更新

您可以为services_treatments创建一个联接表,然后将ServiceTreatment之间的关系更改为has_and_belongs_to_many

然后,当您想要为治疗分配服务时,您可以将其添加到service_ids上的Treatment model列。

然后当你想要治疗的所有服务时,你会这样做:

Treatment.find(params[:id]).services