模型:
class Car < ActiveRecord::Base
...
belongs_to :manufacturer
...
end
class Manufacturer < ActiveRecord::Base
...
has_many :cars
...
end
汽车 Controller :
def index
@title = "All cars"
@cars = Car.paginate(:page => params[:page], :per_page => 20)
end
查看:
<%= car.manufacturer.name %>
显示:nil:NilClass 的未定义方法“名称”
好的。查看:
<%= car.manufacturer[name] %>
显示:#<#:0x460c488> 的未定义局部变量或方法“名称”
但是!查看:
<%= car.manufacturer.to_yaml %>
显示:
--- !ruby/object:Manufacturer
attributes:
id: 1
name: Acura
created_at: 2011-11-30 09:59:19.750976000 Z
updated_at: 2011-12-06 10:38:46.569531000 Z
那么我如何读取 Car.manufacturer 的名称?
最佳答案
<%= car.manufacturer.name if car.manufacturer %>
由于某些结果不会设置属性,这可确保您仅在设置属性时才调用属性 getter 方法。
关于ruby-on-rails - 无法获取对象属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10192106/