我是ruby on rails的新手,这就是问题所在:
我正在尝试将一个关于汽车信息的循环中的客户端名称。汽车数据包含一个名为“belongs_to”的列,它是客户端的ID。
重要的一行:<td><%= @client.find(car.belongs_to) %></td>
控制器:
def index
@cars = Car.all
@client = Client.all
respond_to do |format|
format.html # index.html.erb
format.xml { render :xml => @cars }
end
end
你们会怎么做?
答案 0 :(得分:7)
您可以使用模型来实现此目的:
class Car < ActiveRecord::Base
belongs_to :client
end
class Client < ActiveRecord::Base
has_many :cars
end
并在您的视图中:
@car.client
修改强>
或反过来说:
@client.cars
# to iterate over them:
@client.cars.each do |car|
# do something with car
end
答案 1 :(得分:4)
belongs_to不是一个非常好的列名。有一种名为“belongs_to”的关联类型,您可以在其中建立模型之间的关系,其中一个“belongs_to”另一个模型,例如:
class Car < ActiveRecord::Base
belongs_to :client # there is a column on the cars table called "client_id"
end
和
class Client < ActiveRecord::Base
has_many :cars
end
然后你可以这样做:
client = car.client
查看Ruby on Rails Guides - A Guide to Active Record Associations
答案 2 :(得分:2)
尝试
Client.find(car.belongs_to)
你真正想做的事情是让你的Car
模型有这样的东西
belongs_to :client
您的Client
型号
has_many :cars
然后,您只需致电@car.client
即可获得所需内容。
答案 3 :(得分:0)
我猜你可以这样做:
@cars.each do |car|
car.client
end
在汽车模型中,我猜你已经有了:
belongs_to :client