我有这三种模式:
class Project < ActiveRecord::Base
has_many :garden
end
class Garden < ActiveRecord::Base
belongs_to :project
has_one :garden_customer
validates_uniqueness_of :idjardin, :message => "Este codigo jardin ya esta utilizado"
end
class GardenCustomer < ActiveRecord::Base
belongs_to :garden
end
如果我运行project=Project.find(1)
然后garden=project.garden.find(1)
一切正常。但是,当我试图获得花园客户时,我得到了一个零对象而不是空数组或值,即:
garden.garden_customer
是零。
我不能在garden.garden_customer上调用任何方法。
代码示例:
@project=Project.find(params[:project_id])
@garden = @project.garden.find(params[:garden_id])
@garden_customers = @garden.garden_customer.all
我得到错误“未定义的方法`all'为nil:NilClass”
答案 0 :(得分:0)
由于Garden
是一个has_many,它应该设置为has_many :gardens
修改:garden_customer
也设置为has_one
个关系,因此每garden_customer
只有garden
个,因此garden.garden_customer.all
错误。 garden.garden_customer
本身会直接为您提供相关的garden_customer
,前提是它是在创建过程中设置的。