我需要发送什么样的数据库请求来获取这种性质的表:
- 药物名称----- Saller 1 ----- Saller 2 ----- Saller 3
药物1 ------------价格1 -------价格2 ------价格3- 药物2 -------------价格4 -------价格5 -------价格6
还有下一个型号: 药物表有药物名称
class Drug < ApplicationRecord
has_many :drug_pharmacies
has_many :pharmacies, through: :drug_pharmacies
end
药房表有药房名称
class Pharmacy < ApplicationRecord
has_many :drug_pharmacies
has_many :drugs, through: :drug_pharmacies
end
DrugPharmacies表有Drug_id,Pharmacy_id,价格
class DrugPharmacy < ApplicationRecord
belongs_to :drug
belongs_to :pharmacy
end
在药店(卖家)的控制器清单中,我已经形成了这样一个请求(通过地理位置寻找位于主药房旁边的竞争对手的逻辑)
pharmacy= Pharmacy.find(params[:id])
longitude = pharmacy.x
latitude = pharmacy.y
@competitors = Pharmacy.where(x: (longitude-0.005..longitude+0.005), y: (latitude-0.005..latitude+0.005))
在同一个控制器中,我发送有关药物的信息
@drugs = Drug.all.sort_by &:name
有了这样的请求,我必须在视图上进入数据库:
<table>
<tr>
<th>names</th>
<% @competitors.each do |apteka| %> #filling the table with sellers
<th><%= apteka.name %></th>
<% end %>
</tr>
#filling the table body with drugs and prices from competitors
<% @drugs.each do |drug| %>
<tr>
<td><%= drug.name %></td>
<% @competitors.length.times do |i| %> #The problem in the presentation here is I suppose
<td> <%= drug.drug_pharmacies.find_by_pharmacy_id(@competitors[i].id).price %>
</td>
<% end %>
</tr>
<% end %>
</table>
答案 0 :(得分:0)
答案是:
$(document).ready(function(){
document.getElementById("text_box_id")
.addEventListener("keyup", function(event) {
event.preventDefault();
if (event.keyCode === 13) {
document.getElementById("button_id").click();
}
});
});
在@competitors中,我们在广场上找到了我们的竞争对手。然后使用func包括:
pharmacy= Pharmacy.find(params[:id])
longitude, latitude = pharmacy.x, pharmacy.y
@competitors = Pharmacy.where(x: (longitude-0.005..longitude+0.005),
y: (latitude-0.005..latitude+0.005))
这会收集所有竞争对手的所有药品名称。