我有4张桌子
品牌has_many马达
电机属于一个品牌
boat_motor_package属于船只和马达
一艘船has_many boat_motor_packages
我需要做两件事
例如,
我有一条船
我有2个品牌 - “evinrude”和“mercury”
我有4个电机,每个品牌2个
以下是我希望它在我的视图模板中查看的方式
埃文鲁德
汞
这是我的控制器动作
def show
@boat = Boat.find(params[:id])
packages = BoatMotorPackage.where(boat: @boat).all
@package_motor_brands = packages.map { |p| p.motor.brand }
end
@package_motor_brands给了我所需的所有品牌
现在我需要找到与船和motor.brand相关的电机包。
我试图做这样的事情:
-@boat.motor_packages(brand).each do |motor_package|
并在Boat类中创建一个如下所示的方法:
def motor_packages(brand)
BoatMotorPackage.where(["boat => ? and motor.brand => ?", self, brand])
end
但这不起作用。我收到错误,说motor.brand列不存在。这是真的,因为它在电机桌上很实用。有谁知道这样做的正确方法?
这是我的观点,这有助于
- @package_motor_brands.each do |brand|
.col-xs-6.motor-group-container
%h5= brand.name
-@boat.motor_packages(brand).each do |motor_package|
.row
.col-xs-12.motor-group
%label.motor-group-name
%input#motorPackageRadios1{:name => "motorPackages", :type => "radio", :value => "#{motor_package.id}"}/
="#{motor_package.motor.hp.to_s}HP #{motor_package.motor.motor_type}"
.motor-group-price="#{motor_package.price_in_cents}"
答案 0 :(得分:-1)
如果您正在关注Rails约定,则包含Motor
条记录的表格将被称为motors
(复数),而不是motor
(单数)。